Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2020年9月.
Promise.any() は静的メソッドで、入力としてプロミスの反復可能オブジェクトを取り、単一の Promise を返します。この返されたプロミスは、入力のプロミスのいずれかが履行されたときに、この最初の履行値で履行されます。入力のプロミスがすべて拒否された場合(空の反復可能オブジェクトが渡された場合を含む)、拒否理由の配列を格納した AggregateError で、拒否されます。
プロミスの反復可能オブジェクト(Array など)です。
次のような Promise です。
Promise.any() メソッドはプロミスの並行処理メソッドの 1 つです。このメソッドは、最初に履行されたプロミスを返すのに有益なものです。最初のプロミスが履行された後は短絡的に処理するので、一つを見つけると、他のプロミスが完了するのを待つことはありません。
メモ: 日本語の技術文書では、このメソッドが複数のプロミスを並列に処理すると説明されることがありますが、実際には複数のスレッドでプロミスが処理されるわけではないことに注意してください。詳細はプロミスの並行処理を参照してください。
Promise.all() が履行された値の配列を返すのとは異なり、 1 つの履行値だけを取得します(少なくとも 1 つのプロミスが履行されることを想定しています)。これは、履行されるプロミスが 1 つだけ必要で、どれが履行されるかは気にしない場合、有益なことがあります。もう一つの異なる形に注意してください。このメソッドは、空の反復可能オブジェクト を受け取ると拒否します。なぜなら、正直に言うと、反復処理オブジェクトには、履行されるアイテムが格納されていないからです。Promise.any() と Promise.all() を Array.prototype.some() と Array.prototype.every() で比較することができます。
また、 Promise.race() が最初の 決定された 値(履行されたか拒否されたか)を返すのとは異なり、このメソッドは最初の 履行された 値を返します。このメソッドは、最初に履行されたプロミスまでのすべての拒否されたプロミスを無視します。
Promise.any() は、先に拒否されたプロミスがあったとしても、最初に履行されたプロミスで解決されます。これは Promise.race() が、最初に決定されたプロミスで解決または拒否されるのとは対照的です。
Promise.any() は履行されたプロミスがないと AggregateError で拒否されます。
この例では、画像を読み込んで blob を返す関数があります。 Promise.any() を使用して二つの画像を読み込み、先に利用可能になった方 (つまり、プロミスが解決された方) を表示します。
| ECMAScript® 2027 Language Specification # sec-promise.any |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年8月21日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.