Heim >Web-Frontend >js-Tutorial >Wie kann ich auf Zwischen-Promise-Ergebnisse in JavaScript-Promise-Ketten zugreifen?
Zwischenergebnisse in Versprechensketten verwalten
Problem:
Beim Erstellen von Versprechensketten ist es Es kann schwierig sein, im letzten Rückruf auf Zwischenergebnisse des Versprechens zuzugreifen. Wie können wir im folgenden Beispiel auf das Ergebnis von PromiseA innerhalb des Rückrufs für PromiseB zugreifen?
function getExample() { return promiseA(…).then(function(resultA) { // Processing return promiseB(…); }).then(function(resultB) { // How can we access resultA here? }); }
Lösung: Unterbrechen der Kette
Um auf Zwischenergebnisse zuzugreifen Um die Versprechenskette zu verstehen, ist es am besten, die Kette in einzelne Komponenten aufzuteilen. Auf diese Weise können Sie mehrere Rückrufe an dasselbe Versprechen anhängen und bei Bedarf auf den aufgelösten Wert zugreifen. Hier ist eine verbesserte Version des Codes:
function getExample() { var a = promiseA(…); var b = a.then(function(resultA) { // Processing return promiseB(…); }); return Promise.all([a, b]).then(function([resultA, resultB]) { // Processing using both resultA and resultB return …; }); }
Dieser Ansatz nutzt die Promise.all()-Methode, um ein Array aller Versprechen in der Kette zu erstellen. Anschließend verketten wir einen weiteren then()-Rückruf mit dem Promise.all()-Ergebnis und übergeben eine Funktion, die ein Array der aufgelösten Werte empfängt. Dadurch können wir innerhalb des letzten Rückrufs problemlos auf resultA und resultB zugreifen.
Alternative Lösungen:
In ES5 können Sie die Methode .spread() verwenden, um dies zu erreichen ähnliche Funktionalität:
… return Promise.all([a, b]).then(.spread(function(resultA, resultB) { … });
Bluebird bietet eine dedizierte join()-Methode, die diesen Prozess vereinfacht weiter:
… return Promise.join(a, b, function(resultA, resultB) { … });
Indem Sie die Kette unterbrechen und die entsprechenden Versprechenskombinatoren verwenden, können Sie elegant auf Zwischenergebnisse von Versprechen zugreifen und diese bearbeiten und so eine klare und effiziente Codestruktur gewährleisten.
Das obige ist der detaillierte Inhalt vonWie kann ich auf Zwischen-Promise-Ergebnisse in JavaScript-Promise-Ketten zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!