ホームページ >ウェブフロントエンド >jsチュートリアル >動的配列の Promise を順番に実行するにはどうすればよいですか?
配列を操作する場合、多くの場合、Promise 間でパラメーターを渡しながら、要素ごとに一連のタスクを順番に実行する必要があります。
これを実現するには、ネストされた一連の .then() 呼び出しを使用できます。ただし、配列のサイズが大きくなるにつれて、このアプローチは煩雑で柔軟性がなくなります。
簡潔な解決策は、.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 サイトの他の関連記事を参照してください。