Der Zugriff auf frühere Versprechen führt zu einer .then()-Kette
Beim Streben nach Strukturierung von Code mithilfe von Versprechen wird eine „flache Versprechenskette“ erstellt. Es können mehrere .then()-Callbacks erstellt werden. Allerdings kann der Zugriff auf Zwischenergebnisse innerhalb dieser Kette eine Herausforderung darstellen, da sie normalerweise nicht im Bereich nachfolgender Rückrufe liegen.
Unterbrechung der Kette
Um auf Zwischenwerte zuzugreifen, sollten Sie Folgendes in Betracht ziehen Brechen Sie die Kette in kleinere Stücke. Anstatt einen einzelnen Rückruf anzuhängen und zu versuchen, seinen Parameter wiederholt zu verwenden, fügen Sie mehrere Rückrufe an dasselbe Versprechen an, bei dem jeder Ergebniswert erforderlich ist. Durch die Einbindung von Versprechenskombinatoren, die von der Bibliothek bereitgestellt werden, kann der Ergebniswert erstellt werden.
Dieser Ansatz vereinfacht den Kontrollfluss, verbessert die Zusammensetzung und erleichtert die Modularisierung.
Geändertes Codebeispiel:
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 }); }
ES5-Alternative:
… return a.then(function(resultA) { return b.then(function(resultB) { // more processing return // something using both resultA and resultB }); });
Bluebird Lösung:
… return Promise.join(a, b, function(resultA, resultB) { … });
Das obige ist der detaillierte Inhalt vonWie kann ich auf frühere Promise-Ergebnisse in einer JavaScript .then()-Kette zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!