0
0

Promise配列処理の備忘録

Last updated at Posted at 2024-07-22

JavaScriptで複数Promise処理の備忘録

前提条件(Promise配列)

const promises = [ promise0, promise1, promise2 ... ];

Promise.all( promises )

  • promises配列ですべてのPromiseresolve
    thenに処理が移譲される。
    コールバック関数の引数はもとのpromisesと同じ順番の各Promiseresolveされた値の配列。
  • promises配列でrejectを検出
    catchに処理が移譲される。
    コールバック関数の引数はrejectを検出したPromiseのエラー。

Promise.allSettled( promises )

常にthenに処理が移譲される。
コールバック関数の引数はもとのpromises配列と同じ順番の各Promise結果の配列。

  • resolveが返される要素の場合の処理結果
    { status: "fulfilled", value: (resolveされた値) }
  • rejectが返される要素の場合の処理結果
    { status: "rejected", error: (rejectされたエラー) }

Promise.any( promises )

  • promises配列でresolveした結果がある場合
    thenに処理が移譲される。
    コールバック関数の引数は最初にresolveされた値。
  • promises配列ですべてrejectされた場合
    catchに処理が移譲される。
    コールバック関数の引数はもとのpromisesと同じ順番の各Promise結果(rejectされたエラー)の配列をerrors属性に持つAggregateErrorオブジェクト。

Promise.race( promises )

最初に解決した処理により分岐する。

  • resolveされた場合
    thenに処理が移譲される。
    コールバック関数の引数は最初にresolveされたPromiseの値。
  • rejectされた場合
    catchに処理が移譲される。
    コールバック関数の引数は最初にrejectされたPromiseのエラー。
0
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0