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

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

Mary-Kate Olsen
リリース: 2024-11-19 07:14:02
オリジナル
845 人が閲覧しました

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 サイトの他の関連記事を参照してください。

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