Heim > Web-Frontend > js-Tutorial > Wie kann ich auf Zwischenergebnisergebnisse in einer JavaScript-Kette „.then()' zugreifen?

Wie kann ich auf Zwischenergebnisergebnisse in einer JavaScript-Kette „.then()' zugreifen?

DDD
Freigeben: 2024-12-26 00:08:09
Original
214 Leute haben es durchsucht

How Can I Access Intermediate Promise Results in a JavaScript `.then()` Chain?

Der Zugriff auf Intermediate Promise-Ergebnisse in einer .then()-Kette

Promises bieten eine praktische Möglichkeit, asynchrone Vorgänge in Ihrem Code zu verwalten. Manchmal kann es jedoch vorkommen, dass Sie auf Zwischenergebnisse von Versprechen innerhalb einer .then()-Kette zugreifen müssen.

Die Herausforderung

Betrachten Sie die folgende Versprechenkette:

function getExample() {
    return promiseA(…).then(function(resultA) {
        // Some processing
        return promiseB(…);
    }).then(function(resultB) {
        // More processing
        return // How do I gain access to resultA here?
    });
}
Nach dem Login kopieren

In dieser Kette ist das Ergebnis von PromiseA() innerhalb des .then()-Rückrufs für PromiseB() nicht zugänglich. Dies kann ein Problem sein, wenn Sie beide Ergebnisse in Ihrer endgültigen Berechnung verwenden müssen.

Unterbrechung der Kette

Um diese Einschränkung zu überwinden, können Sie die Kette in einzelne Teile aufteilen Stücke und verwenden Sie die von Ihrer Bibliothek bereitgestellten Versprechenskombinatoren. Betrachten Sie das folgende Refactoring:

function getExample() {
    var a = promiseA(…);
    var b = a.then(function(resultA) {
        // some processing
        return promiseB(…);
    });
    return Promise.all([a, b]).then(function([resultA, resultB]) {
        // more processing
        return // something using both resultA and resultB
    });
}
Nach dem Login kopieren

Dieser Ansatz verwendet Promise.all, um auf die Auflösung beider Versprechen zu warten, bevor die Ergebnisse an den endgültigen .then()-Rückruf übergeben werden.

Sonstiges Optionen

  • Destrukturierung: ES6 ermöglicht Ihnen die Destrukturierung Array, das von Promise.all zurückgegeben wird, in einzelne Variablen.
  • Spread-Operator: ES6 unterstützt auch den Spread-Operator, der verwendet werden kann, um die Array-Elemente in die Callback-Argumente zu verteilen.
  • Join-Methode (Bluebird): Bluebird bietet eine spezielle Join-Funktion, die die Kombination mehrerer Versprechen zu einem einzigen vereinfacht Ergebnis.

Indem Sie Ihre Kette unterbrechen und diese Alternativen verwenden, können Sie leicht auf Zwischenergebnisse zugreifen und eine klare und modulare Codestruktur beibehalten.

Das obige ist der detaillierte Inhalt vonWie kann ich auf Zwischenergebnisergebnisse in einer JavaScript-Kette „.then()' zugreifen?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage