Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Promiseによる非同期処理の扱い | 非同期JavaScriptとAPI統合
JavaScriptロジックとインタラクション

bookPromiseによる非同期処理の扱い

メニューを表示するにはスワイプしてください

Promiseとは何か?

Promiseは将来の値のためのプレースホルダーであり、次のいずれかになります。

Promiseは最初はpendingの状態で開始し、その後、値とともにfulfilled、または理由とともにrejectedのいずれかに永久的に確定します。

resolve、reject、および then() メソッドの理解

Promise の作成

Promise を作成するには、2 つのパラメータ(resolvereject)を持つ関数を渡します。これらのパラメータは、非同期処理が正常に完了したか、失敗したかを示すために使用される関数です。

const myPromise = new Promise((resolve, reject) => {
  const success = true; // Simulate whether the task is successful

  if (success) {
    resolve('Task completed successfully!');
  } else {
    reject('Task failed.');
  }
});
  • resolve(value): Promise を成功(fulfilled)としてマークし、結果(value)を渡す;
  • reject(error): Promise を失敗(rejected)としてマークし、エラーを渡す。

then() を使った解決済み Promise の処理

Promise が作成された後、then() メソッドを使って結果を処理できます。このメソッドは、Promise が成功(resolved)したときに呼び出されます。

myPromise.then(result => {
  console.log(result); // Output: Task completed successfully!
});

この例では、then() メソッドが resolve() に渡された値を受け取り、その結果でコールバックを実行します。Promise が正常に解決された場合のみ実行されます。

.catch() によるエラー処理

Promise は .catch() メソッドを使ってエラーを簡単に処理できます。Promise が拒否(失敗)された場合、エラーは .catch() 内で捕捉されて処理されます。

1234567891011121314151617
const myPromise = new Promise((resolve, reject) => { const success = false; // Simulate a failure if (success) { resolve('Task completed successfully!'); } else { reject('Task failed.'); } }); myPromise .then(result => { console.log(result); }) .catch(error => { console.error('Error:', error); // Output: Error: Task failed. });
copy

catch() メソッドは、Promise が拒否されたときにエラーを処理するために使用。reject() によって渡されたエラーを捕捉し、失敗時のシナリオを管理可能。

順次非同期処理のための Promise のチェーン

Promise の主な利点の一つは、それらを連結して複数の非同期処理を順番に扱える点。これにより、コールバック地獄を回避しながら処理を進行可能。各 then() は新しい Promise を返し、複数の then() を連続して呼び出すことができ、各 Promise が解決されるたびに HTML に結果が表示される。

index.html

index.html

index.js

index.js

index.css

index.css

copy

連続した操作:then() は新しい Promise を返し、1つの操作の結果を次の操作に渡します。これにより、非同期処理をクリーンかつ直線的なシーケンスで実行し、HTML内の表示テキストを更新できます。

エラー処理: .catch() メソッドは、Promise の解決中に発生したあらゆるエラーを処理します。これにより、チェーン内のどこでエラーが発生しても、エラーがキャッチされてページに表示されることが保証されます。

なぜ Promise を使うのか?

  1. コールバック地獄の回避: Promise は、深くネストされたコールバックよりも非同期処理をよりクリーンで読みやすく扱う方法を提供します。
  2. エラー処理: Promise は .catch() による組み込みのエラー処理を提供し、拒否された操作の処理を容易にします。
  3. 連続的なチェーン処理: Promise を使うことで、複数の非同期処理をチェーンで順番に実行でき、コードの可読性と保守性が向上します。

1. Promise とは何ですか?

2. 次のコードにおいて、.catch() コールバックのいずれかでエラーが発生した場合、.then() は何をしますか?

question mark

Promise とは何ですか?

正しい答えを選んでください

question mark

次のコードにおいて、.catch() コールバックのいずれかでエラーが発生した場合、.then() は何をしますか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  3

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 4.  3
some-alt