ホームページ >ウェブフロントエンド >jsチュートリアル >適切なエラー処理を使用して JavaScript で非同期操作を同時に実行するにはどうすればよいですか?

適切なエラー処理を使用して JavaScript で非同期操作を同時に実行するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-10 00:22:11248ブラウズ

How Can I Run Asynchronous Operations Concurrently in JavaScript with Proper Error Handling?

待機操作の同時実行

問題のコード スニペットは、非同期操作の実行時に問題が発生します:

const value1 = 待機しますgetValue1Async();<br>const value2 = await getValue2Async();<br>

この実装は、各操作の完了を順番に待ってから、次の操作を開始します。同時実行を有効にするには、変更されたアプローチが必要です。

Promise の分解と個別の待機

最初に提示されたソリューションは、各操作の Promise を取得し、それらを個別に待機することでこれに対処しようとします。


const p1 = getValue1Async();
const p2 = getValue2Async();
const value1 = await p1;
const value2 = await p2;

このメソッドは両方の操作を並行して実行しますが、両方の Promise が拒否された場合、拒否を適切に処理できません。また、最初の操作が完了するまで待ってから 2 番目の操作を開始するため、非効率的です。

Promise.all ソリューション

これらの問題を解決するには、Promise.all 関数を使用できます。

<br>const [value1, value2] = 待機Promise.all([getValue1Async(), getValue2Async()]);<br>

Promise.all は、Promise の配列を受け取り、入力されたすべての Promise が解決される単一の Promise を返します。解決または拒否されました。このアプローチにはいくつかの利点があります。

  • 同時実行性: 操作は最初の操作の完了を待たずに同時に実行されます。
  • 拒否処理: あらゆる拒否は適切に処理され、結果として生じる約束は適切な方法で拒否されます。エラー。
  • 簡潔さ: 構文は簡潔で読みやすいです。

TL;DR

要約すると、同時非同期操作を実行するには適切な拒否処理を使用してくださいPromise.all:

<br>const [value1, value2] = await Promise.all([getValue1Async(), getValue2Async()]);<br>

以上が適切なエラー処理を使用して JavaScript で非同期操作を同時に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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