Heim > Artikel > Web-Frontend > Wie führe ich eine Rückruffunktion nach der asynchronen Verarbeitung innerhalb einer ForEach-Schleife aus?
Problemstellung:
Wie können wir bei einem Array von Elementen a aufrufen? Rückruffunktion, nachdem die gesamte asynchrone Verarbeitung innerhalb einer forEach-Schleife abgeschlossen ist?
Lösung 1: Zählerbasierter Ansatz
<code class="javascript">function callback () { console.log('all done'); } var itemsProcessed = 0; [1, 2, 3].forEach((item, index, array) => { asyncFunction(item, () => { itemsProcessed++; if(itemsProcessed === array.length) { callback(); } }); });</code>
Lösung 2: Versprechensbasierter Ansatz
Synchrone Ausführung:
<code class="javascript">let requests = [1, 2, 3].reduce((promiseChain, item) => { return promiseChain.then(() => new Promise((resolve) => { asyncFunction(item, resolve); })); }, Promise.resolve()); requests.then(() => console.log('done'));</code>
Asynchrone Ausführung:
<code class="javascript">let requests = [1, 2, 3].map((item) => { return new Promise((resolve) => { asyncFunction(item, resolve); }); }); Promise.all(requests).then(() => console.log('done'));</code>
Lösung 3: Async-Bibliotheksnutzung
Das obige ist der detaillierte Inhalt vonWie führe ich eine Rückruffunktion nach der asynchronen Verarbeitung innerhalb einer ForEach-Schleife aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!