KJR020 KJR020's Blog

PromiseAll

Promise.allについて調べたときのメモ

経緯

なぜか忘れたけど、Promise.allについて調べていた。 記事にまとめておく。

概要

Promise.all()は、JavaScriptの組み込みの静的メソッドである。 iterableなPromiseを入力として受取る。 それらのPromiseが全てresolveされた際に、新しいPromiseを返す。

使い方

mdnのデモを引用すると、以下のような構文となる。

const promise1 = Promise.resolve(3);
const promise2 = 42;
const promise3 = new Promise((resolve, reject) => {
  setTimeout(resolve, 100, 'foo');
});

Promise([promise1, promise2, promise3]).then((values) => 
  console.log(values)
);
// Expected output: Array [3, 42, "foo"]

パラメーター

  • iterable : Promiseの配列など、iterableなオブジェクト。

戻り値

  • Promise : 全てのPromiseがresolveされた際に、resolveされるPromise。
    • 空のiterableを渡した場合 -> 即座にresolveされるPromiseを返す。
    • 全てのPromiseがresolveされた場合 -> resolveされた値を持つPromiseを返す。
      このとき、返されるPromiseのresolveされた順番によらず、引数のPromiseの順番になる。
    • 一つでもrejectされた場合は、即座にrejectされる。
      このとき、rejectされた理由は、最初にrejectされたPromiseの理由となる。

参考

Promise.all() - JavaScript | MDN
Promise.all() は静的メソッドで、入力としてプロミスの集合の反復可能オブジェクトを取り、単一の Promise を返します。この返却されたプロミスは、入力されたプロミスがすべて履行されたとき(空のイテレーターが渡されたときを含む)、その履行された値の配列で、履行されます。入力されたプロミスのいずれかが拒否されると、その最初の拒否理由とともに拒否されます。
Promise.all() - JavaScript | MDN favicon developer.mozilla.org
Promise.all() - JavaScript | MDN
ECMAScript® 2026 Language Specification
Introduction This Ecma Standard defines the ECMAScript 2026 Language. It is the seventeenth edition of the ECMAScript Language Specification. ECMAScript is based on several originating technologies, the most well-known being JavaScript (Netscape) and JScript (Microsoft). The language was invent
ECMAScript® 2026 Language Specification favicon tc39.es
ECMAScript® 2026 Language Specification
Esc
キーワードを入力して検索