Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【JavaScript ECMAScript】Promise::Promise.prototype.catchインスタンスメソッドの使い方

Promise.prototype.catch()インスタンスメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

Promise.prototype.catch()メソッドは、Promiseオブジェクトが拒否(rejection)された際に実行されるエラーハンドリング処理を登録するメソッドです。Promiseは、非同期処理の最終的な完了または失敗を表すオブジェクトであり、その結果を後続の処理に伝達します。

このcatch()メソッドは、Promiseチェインにおいて、非同期処理中に発生したエラーを捕捉するために利用されます。Promiseが成功(resolve)した場合にはcatch()内のコールバック関数は実行されず、拒否(reject)された場合にのみ、そのエラー情報が引数としてコールバック関数に渡され、指定されたエラー処理が実行されます。

機能的には、Promise.prototype.then()メソッドの第二引数にエラーハンドリング関数を渡すことと等価ですが、catch()を使用することでエラー処理の意図が明確になり、コードの可読性が向上します。Promiseチェインの途中でエラーが発生した場合、そのエラーは次に現れるcatch()メソッドに伝播し、そこで処理されるか、または他にcatch()がなければ未処理のままとなります。

catch()メソッド自体も新しいPromiseオブジェクトを返します。これにより、エラー処理後にさらに別のPromiseチェインを続けることが可能です。非同期処理における堅牢なエラー処理を実装するために、Promiseと共に広く利用される重要なメソッドです。

公式リファレンス: Promise.prototype.catch()

構文(syntax)

1const myPromise = new Promise((resolve, reject) => {
2  // Promiseが拒否される(エラーが発生する)シナリオをシミュレート
3  reject(new Error("データの取得に失敗しました"));
4});
5
6myPromise.catch(error => {
7  // Promiseが拒否された場合に実行される関数
8  console.error("エラーを捕捉しました:", error.message);
9});

引数(parameters)

onRejected

  • onRejected: Promiseがrejectされた場合に実行されるコールバック関数。エラーオブジェクトが引数として渡されます。

戻り値(return)

Promise

Promise.prototype.catch() は、Promise が拒否された(rejected)場合に実行されるコールバック関数を登録します。このメソッドは、常に新しい Promise インスタンスを返します。この新しい Promise は、登録されたコールバック関数が正常に実行された場合は解決(fulfilled)され、コールバック関数内でエラーが発生した場合は拒否(rejected)されます。

関連コンテンツ