ホームページ >ウェブフロントエンド >jsチュートリアル >配列パラメータを使用して Promise を順番に実行するにはどうすればよいですか?
配列パラメータを使用して Promise を順次実行する
シナリオによっては、配列からパラメータを渡して Promise を順番に実行する必要がある場合があります。これは、配列が動的に設定され、実行順序が重要である場合に必要になります。
「一時停止可能なループ」を作成する 1 つの方法は、.then メソッドを繰り返し使用することです。ただし、これは面倒で、ピラミッド型の Promise チェーンが生成される可能性があります。
Promises の使用
よりクリーンな解決策には、Array.reduce を使用して Promise チェーンを 1 つの Promise に折りたたむことが含まれます。
myArray.reduce( (p, x) => p.then(() => myPromise(x)), Promise.resolve() )
このアプローチでは、一連のチェーンされた Promise が作成され、順次実行が保証されます。
非同期関数の使用
あるいは、非同期関数を使用すると、より読みやすく効率的な実装が可能になります。次の例では、非同期関数を使用して Promise を繰り返し実行します。
const forEachSeries = async (iterable, action) => { for (const x of iterable) { await action(x) } } forEachSeries(myArray, myPromise)
戻り値の収集
Promise から戻り値を収集する必要がある場合は、変更されたバージョンを使用できます。 MapSeries と呼ばれる forEachSeries 関数の:
const mapSeries = async (iterable, fn) => { const results = [] for (const x of iterable) { results.push(await fn(x)) } return results }
この関数は反復可能関数を反復処理し、Promise の結果を収集し、結果の配列を返します。
これらの手法を使用すると、次のことができます。配列からパラメータを渡し、実行順序を確保し、必要に応じて結果を収集することで、Promise を順番に簡単に実行できます。
以上が配列パラメータを使用して Promise を順番に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。