ホームページ  >  記事  >  ウェブフロントエンド  >  複数の非同期 JavaScript 関数を同時に実行するにはどうすればよいですか?

複数の非同期 JavaScript 関数を同時に実行するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-19 07:14:02782ブラウズ

How Can I Execute Multiple Async JavaScript Functions Concurrently?

JavaScript での非同期関数の同時実行

JavaScript では、複数の非同期関数を待機すると、それらが同時にではなく順番に実行されるような印象を与えることがあります。ここで疑問が生じます: これらの関数の並列実行を実現するにはどうすればよいでしょうか?

並列処理に Promise.all() を使用する

非同期関数を並列で実行するには、Promise.all( ) 関数。 Promise の配列を引数として受け取り、配列内のすべての Promise が解決されたときに解決される単一の Promise を返します。

await Promise.all([someCall(), anotherCall()]);

このコードでは、someCall() と anotherCall() の両方が同時に呼び出されます。スクリプトは、両方の関数の実行が完了した場合にのみ続行されます。

結果の保存

並列非同期呼び出しでは、Promise.all() によって返される配列を構造解除できます:

let [someResult, anotherResult] = await Promise.all([someCall(), anotherCall()]);

警告: フェイルファスト動作

Promise.all() は次の規則に従うことに注意することが重要です。 「フェイルファスト」アプローチ。配列内のいずれかの Promise が拒否された場合、Promise.all() Promise 全体が最初に失敗した Promise からのエラーで拒否されます:

// If any of the promises fails, it will reject
Promise.all([happy('happy', 100), sad('sad', 50)]).then(console.log).catch(console.log);

以上が複数の非同期 JavaScript 関数を同時に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。