Wie man mit mehreren Versprechen umgeht und auf deren Erfüllung wartet
Bei der Arbeit mit asynchronem Code ist es oft notwendig, mit mehreren Versprechen umzugehen und auf deren Erfüllung zu warten Alles muss abgeschlossen sein, bevor Sie fortfahren. Dieser Artikel führt Sie durch die Verwendung von Promise.all.
Einführung in Promise.all
Promise.all akzeptiert eine Reihe von Versprechen und gibt ein einzelnes Versprechen zurück, das gelöst wird wenn alle Eingabeversprechen gelöst wurden, oder wenn einer von ihnen ablehnt.
Umstrukturierung doSomeAsyncStuff, um ein Versprechen zurückzugeben
Damit doSomeAsyncStuff mit Versprechen funktioniert, ändern Sie es wie folgt:
function doSomeAsyncStuff() { return new Promise((resolve) => { editor.on('instanceReady', function(evt) { doSomeStuff(); resolve(true); }); }); }
Verwenden Sie Promise.all, um auf alle Async-Aufgaben zu warten
Sobald doSomeAsyncStuff ein Versprechen zurückgibt, können Sie es verwenden Promise.all wartet, bis alle Instanzen abgeschlossen sind. Hier ist eine verbesserte Version Ihres Codes:
const promises = []; for (let i = 0; i < 5; i++) { promises.push(doSomeAsyncStuff()); } Promise.all(promises) .then(() => { for (let i = 0; i < 5; i++) { doSomeStuffOnlyWhenTheAsyncStuffIsFinish(); } }) .catch((e) => { // Handle errors here });
Dieser Code erstellt aus jedem Aufruf von doSomeAsyncStuff eine Reihe von Versprechen. Promise.all nimmt dieses Array und wartet darauf, dass alle Versprechen aufgelöst werden. Sobald alle Versprechen gelöst sind, wird der Rückruf ausgeführt, sodass Sie Aktionen ausführen können, die von den Ergebnissen der asynchronen Aufgaben abhängen.
Das obige ist der detaillierte Inhalt vonWie verwende ich Promise.all, um mehrere Versprechen zu verwalten und abzuwarten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!