ホームページ > ウェブフロントエンド > jsチュートリアル > Await `Promise.all()` と複数の `await`: いつどちらを使用するか?

Await `Promise.all()` と複数の `await`: いつどちらを使用するか?

Susan Sarandon
リリース: 2024-12-01 00:45:11
オリジナル
196 人が閲覧しました

Await `Promise.all()` vs. Multiple `await`: When to Use Which?

Await Promise.all() と複数の Await

非同期プログラミングで、await Promise.all() を使用するか複数の Await を使用するかを決定するステートメントは、実行タイミングとエラー処理に影響を与える可能性があります。ここでは、それらの主な違いを比較します。

例 1: 実行タイミング

Promise.all() を使用してタスクを同時に実行すると、タスクを待機するよりも早く完了する可能性があります。順次:

let data = await Promise.all([task1(), task2(), task3()]);

// ms ------1---------2---------3---------4---------5
// =============================O task 1
// ====================O           task 2
// =========O                     task 3
//
// =============================O Promise.all
ログイン後にコピー

例 2: エラー

Promise.all() の処理は、エラーを処理するときに複数の await ステートメントと比較して動作が異なります:

  • Promise.all( [task1(), task2()] ):配列内のタスクのいずれかが拒否された場合、Promise.all() Promise はすべてのエラーを含む集約エラー オブジェクトを使用して即座に拒否します。
  • const t1 = task1(); const t2 = タスク2(); const r1 = t1 を待ちます。 const r2 = await t2;: task1() が拒否した場合、実行は次の行に進み、そこで await t2; になります。処刑されるだろう。 task2() も拒否した場合、その拒否だけが未処理の例外として渡されます。

要約すると、Promise.all() は同時実行を提供しますが、拒否されると早期に失敗し、複数の await ステートメントが発生します。タスクを順番に実行し、個別のエラー処理を可能にします。アプリケーションの特定の要件に基づいて賢明に選択してください。

以上がAwait `Promise.all()` と複数の `await`: いつどちらを使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート