Heim >Web-Frontend >js-Tutorial >Wie verwende ich Promise.all, um mehrere Versprechen zu verwalten und abzuwarten?

Wie verwende ich Promise.all, um mehrere Versprechen zu verwalten und abzuwarten?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-24 17:37:11557Durchsuche

How to Use Promise.all to Manage and Await Multiple Promises?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn