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? }); }
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 }); }
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
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!