Bei der Arbeit mit Arrays ist es oft notwendig, eine Reihe von Aufgaben für jedes Element nacheinander auszuführen und Parameter zwischen Versprechen zu übergeben.
Um dies zu erreichen, kann man eine verschachtelte Reihe von .then()-Aufrufen verwenden. Mit zunehmender Array-Größe wird dieser Ansatz jedoch umständlich und unflexibel.
Eine einfache Lösung besteht darin, die Methode .reduce() zu verwenden, um das Array in eine Reihe zu falten von Versprechen:
<code class="js">const promiseChain = myArray.reduce( (p, x) => p.then(() => myPromise(x)), Promise.resolve() );</code>
Ein besser wartbarer Ansatz ist die Verwendung einer asynchronen Funktion, die das Array durchläuft und jedes Versprechen nacheinander ausführt:
<code class="js">const forEachSeries = async (iterable, action) => { for (const x of iterable) { await action(x); } }; forEachSeries(myArray, myPromise);</code>
Wenn die Rückgabewerte der Versprechen benötigt werden, kann eine leichte Modifikation der mapSeries-Funktion verwendet werden:
<code class="js">const mapSeries = async (iterable, fn) => { const results = []; for (const x of iterable) { results.push(await fn(x)); } return results; };</code>
Dieser Ansatz bietet mehr Flexibilität und Lesbarkeit des Codes, wenn Umgang mit dynamischen Arrays von Versprechen.
Das obige ist der detaillierte Inhalt vonWie führt man Versprechen nacheinander für dynamische Arrays aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!