Asynchrone forEach-Rückrufe: Implementierung eines Abschlussrückrufs
In Szenarien, in denen eine asynchrone Schleife wie forEach verwendet wird, besteht häufig die Notwendigkeit, einen auszulösen Rückruf, sobald alle asynchronen Vorgänge abgeschlossen sind. Dieser Leitfaden stellt verschiedene Ansätze vor, um diese Funktionalität zu erreichen.
1. Verwendung eines einfachen Zählers
Diese Technik verwendet einen Zähler, der sich jedes Mal erhöht, wenn ein Element verarbeitet wird. Wenn der Zähler die Gesamtzahl der Elemente erreicht, wird der Abschlussrückruf aufgerufen.
function callback () { console.log('all done'); } var itemsProcessed = 0; [1, 2, 3].forEach((item, index, array) => { asyncFunction(item, () => { itemsProcessed++; if(itemsProcessed === array.length) { callback(); } }); });
2. Nutzung von ES6-Promises
Promises ermöglichen die Erstellung einer sequentiellen Promise-Kette und stellen so die synchrone Ausführung asynchroner Aufgaben sicher.
function asyncFunction (item, cb) { setTimeout(() => { console.log('done with', item); cb(); }, 100); } let requests = [1, 2, 3].reduce((promiseChain, item) => { return promiseChain.then(() => new Promise((resolve) => { asyncFunction(item, resolve); })); }, Promise.resolve()); requests.then(() => console.log('done'))
3. Einsatz einer asynchronen Bibliothek
Bibliotheken wie „async“ bieten Mechanismen zum Ausdruck der gewünschten Funktionalität. Die spezifische Implementierung variiert je nach ausgewählter Bibliothek.
Das obige ist der detaillierte Inhalt vonWie implementiert man einen Abschlussrückruf für asynchrone forEach-Schleifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!