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

【JavaScript ECMAScript】AggregateError: No Promise in Promise.any was resolvedエラーの使い方

AggregateError: No Promise in Promise.any was resolvedエラーの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

AggregateError: No Promise in Promise.any was resolvedクラスは、JavaScriptのPromise.any()メソッドが、指定された全てのPromiseの解決に失敗した場合に発生するエラーを表すクラスです。

JavaScriptにおけるPromise.any()メソッドは、複数のPromiseを受け取り、その中のいずれか一つでも成功(resolve)すれば、その成功したPromiseの値を返して解決します。しかし、もしPromise.any()に渡された全てのPromiseが一つ残らず拒否(reject)された場合、つまり成功したPromiseが一つもなかった場合に、このAggregateErrorがスローされます。

このエラーメッセージは、その名の通り「Promise.any()の中で、解決されたPromiseが一つもなかった」状況を明示しています。スローされるエラーオブジェクトは、AggregateErrorのインスタンスであり、通常のErrorオブジェクトとは異なり、複数のエラー情報をまとめることができます。具体的には、このAggregateErrorオブジェクトのerrorsプロパティには、Promise.any()に渡され、それぞれ拒否された個々のPromiseがスローしたエラーの配列が格納されています。システムエンジニアを目指す方々にとって、非同期処理のデバッグにおいて、このerrorsプロパティを確認することで、どのPromiseが、どのような理由で失敗したのかを詳細に把握し、問題の原因を特定する手がかりとすることができます。

構文(syntax)

1Promise.any([
2  Promise.reject(new Error('エラー1')),
3  Promise.reject(new Error('エラー2'))
4])
5.catch(error => {
6  // ここで AggregateError: No Promise in Promise.any was resolved が捕捉されます
7  // console.error(error);
8  // console.error(error.errors); // 元の拒否されたプロミスのエラーが配列で含まれます
9});

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

関連コンテンツ

関連プログラミング言語