Heim > Web-Frontend > js-Tutorial > Wie verwaltet man abhängige Ergebnisse in JavaScript-Versprechensketten?

Wie verwaltet man abhängige Ergebnisse in JavaScript-Versprechensketten?

Patricia Arquette
Freigeben: 2024-12-05 18:01:11
Original
857 Leute haben es durchsucht

How to Manage Dependent Results in JavaScript Promise Chains?

Wie gehe ich mit abhängigen Ergebnissen in Promise-Ketten um?

Bei Ihrer Frage geht es darum, wie frühere Ergebnisse in einer Folge von Promise-basierten HTTP-Anfragen genutzt werden können. Um dieses Problem anzugehen, betrachten wir zunächst verschiedene Strategien zum Teilen von Daten über abhängige Versprechen hinweg. Die Wahl der Strategie hängt davon ab, ob Sie Zugriff auf alle vorherigen Ergebnisse oder nur auf das neueste benötigen.

Ergebnisse nacheinander einspeisen

In diesem Modell das Ergebnis jedes einzelnen Die Anfrage wird als Argument an die nächste übergeben. Der Zugriff auf frühere Ergebnisse wird jedoch zu einer Herausforderung.

Ergebnisse einem höheren Bereich zuweisen

Alternativ können Sie die Ergebnisse in Variablen in einem höheren Bereich speichern. Dies ermöglicht den Zugriff auf alle vorherigen Ergebnisse.

Ergebnisse in einem Objekt akkumulieren

Bei diesem Ansatz wird ein Objekt erstellt, um Ergebnisse zu akkumulieren. Jede Anfrage fügt ihr Ergebnis dem Objekt hinzu und macht alle vorherigen Daten verfügbar.

Verschachtelte Versprechenketten

Verschachtelte Versprechen bewahren den Zugriff auf frühere Ergebnisse. Jede nachfolgende Ebene bietet einen Bereich, in dem alle früheren Ergebnisse zugänglich sind.

Unterbrechung der Kette mit Promise.all()

Wenn einige Anfragen unabhängig voneinander ausgeführt werden können, können Sie sie verwenden Promise.all() wartet auf deren Abschluss. Dadurch können Sie ihre Ergebnisse asynchron erhalten.

Verwendung von Async/Await in ES7

In ES7 kann async/await die Abfolge asynchroner Vorgänge vereinfachen. Die Ergebnisse sind im gleichen Bereich verfügbar, sodass mehrere .then()-Handler nicht erforderlich sind.

Gilt für Ihr Beispiel

In Ihrem speziellen Fall handelt es sich um einen API-Schlüssel zwischen mehreren HTTP-Anfragen übergeben wird, könnten Sie:

var r1, r2, r3;
callhttp("172.16.28.200", payload).then(function(result1) {
     r1 = result1.data; // Extract the API key
     return callhttp("172.16.28.200", payload);
}).then(function(result2) {
     r2 = result2.data;
     // r1 contains the API key from the previous request
     return callhttp("172.16.28.200", payload);
}).then(function(result3) {
     r3 = result3.data;
     // r1 and r2 contain the API keys from the previous requests
});
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie verwaltet man abhängige Ergebnisse in JavaScript-Versprechensketten?. 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