Heim > Web-Frontend > js-Tutorial > Wie erreicht man eine synchrone Ausführung von Promise-Schleifen unter Beibehaltung der Ordnung?

Wie erreicht man eine synchrone Ausführung von Promise-Schleifen unter Beibehaltung der Ordnung?

Patricia Arquette
Freigeben: 2024-10-29 14:01:02
Original
677 Leute haben es durchsucht

How to Achieve Synchronous Execution of Promise Loops while Preserving Order?

Erzielung einer synchronen Ausführung von Promise-Schleifen

Wie stellen Sie die Synchronität von Promise-Aufrufen und ihren verketteten Protokollierungsvorgängen während Schleifeniterationen sicher? Der anfängliche Ansatz mit PromiseWhile() erscheint vielversprechend, wirft jedoch Bedenken hinsichtlich der Beibehaltung der richtigen Ausführungsreihenfolge auf.

Erwägen Sie stattdessen, die inhärenten Fähigkeiten von Versprechen für diese Aufgabe zu nutzen. Indem wir das Problem als eine Reihe asynchroner Aufrufe zum Abrufen von Benutzerdetails und zum Beibehalten der ursprünglichen Antwortreihenfolge definieren, können wir Array.prototype.reduce() verwenden, um eine flache .then()-Kette zu erstellen.

Lösung:

Der folgende Code veranschaulicht diesen Ansatz:

<code class="javascript">function fetchUserDetails(arr) {
    return arr.reduce(function(promise, email) {
        return promise.then(function() {
            return db.getUser(email).done(function(res) {
                logger.log(res);
            });
        });
    }, Promise.resolve());
}</code>
Nach dem Login kopieren

Diese Funktion nimmt ein Array von E-Mail-Adressen und gibt ein Versprechen zurück. Die Funktion „reduce()“ durchläuft das Array und führt das getUser-Versprechen für jede E-Mail aus. Die Ergebnisse werden synchron im done()-Callback protokolliert.

Aufruf der Funktion:

Um die Funktion aufzurufen, füllen Sie ein Array von E-Mail-Adressen (arrayOfEmailAddys) und verwenden Sie es wie folgt:

<code class="javascript">fetchUserDetails(arrayOfEmailAddys).then(function() {
    console.log('all done');
});</code>
Nach dem Login kopieren

Dieser Code erstellt eine lineare Promise-Kette und stellt sicher, dass jedes Promise nacheinander aufgelöst wird und die Protokollierungsvorgänge in der richtigen Reihenfolge ausgeführt werden.

Das obige ist der detaillierte Inhalt vonWie erreicht man eine synchrone Ausführung von Promise-Schleifen unter Beibehaltung der Ordnung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage