ホームページ >ウェブフロントエンド >jsチュートリアル >動的配列の Promise を順番に実行するにはどうすればよいですか?

動的配列の Promise を順番に実行するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-20 14:58:30567ブラウズ

How to Execute Promises Sequentially for Dynamic Arrays?

動的に設定された配列を使用して Promise を順次実行する

配列を操作する場合、多くの場合、Promise 間でパラメーターを渡しながら、要素ごとに一連のタスクを順番に実行する必要があります。

Promise の順次実行

これを実現するには、ネストされた一連の .then() 呼び出しを使用できます。ただし、配列のサイズが大きくなるにつれて、このアプローチは煩雑で柔軟性がなくなります。

Reduce を使用したフォールド削減

簡潔な解決策は、.reduce() メソッドを使用して配列をシリーズに折りたたむことです。 Promise の数:

<code class="js">const promiseChain = myArray.reduce(
  (p, x) => p.then(() => myPromise(x)),
  Promise.resolve()
);</code>

ループ用の非同期関数

より保守しやすいアプローチは、配列を反復処理して各 Promise を順番に実行する非同期関数を使用することです:

<code class="js">const forEachSeries = async (iterable, action) => {
  for (const x of iterable) {
    await action(x);
  }
};

forEachSeries(myArray, myPromise);</code>

戻り値の収集

Promise の戻り値が必要な場合は、mapSeries 関数を少し変更して使用できます。

<code class="js">const mapSeries = async (iterable, fn) => {
  const results = [];

  for (const x of iterable) {
    results.push(await fn(x));
  }

  return results;
};</code>

このアプローチにより、次のような場合に柔軟性とコードの読みやすさが向上します。 Promise の動的配列を処理します。

以上が動的配列の Promise を順番に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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