ホームページ > 記事 > ウェブフロントエンド > 「Promise.all」は Promise の実行 (並列または順次) をどのように処理しますか?
Node.js ネイティブ Promise は Promise.all を使用して並列または順次に処理されますか?
Q1: Promise.all(iterable) は設計されていますか?すべての Promise を順番に処理するのか、それとも同時に処理するのか?
答え: Promise.all は Promise を実行せず、その完了を待ちます。実行順序を強制したり、計算が並列で発生するかどうかには影響しません。
Q2: Promise.all が Promise を並列で処理する場合、それらを順次実行するネイティブ ES6 メカニズムはありますか?
回答: Promise.all は本質的に Promise を並列実行しませんが、一連の非同期関数を順番に実行する必要がある場合は、Array::reduce を使用してこれを実現できます。
<code class="js">iterable.reduce((p, fn) => p.then(fn), Promise.resolve())</code>
この変換は、関数の配列を連続した Promise のチェーンに変換し、各関数の結果が次の関数の入力になります。
以上が「Promise.all」は Promise の実行 (並列または順次) をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。