Verwenden von Knoten 4.x. Wenn Sie eine Promise.all(promises).then()
haben, was ist der richtige Weg, um die Daten zu lösen und an die nächste .then()
weiterzugeben?Promise.all(). Dann() auflösen?
möchte ich so etwas wie dies zu tun:
Promise.all(promises).then(function(data){
// Do something with the data here
}).then(function(data){
// Do more stuff here
});
Aber ich bin nicht sicher, wie die Daten an den zweiten .then()
zu bekommen. Ich kann resolve(...)
nicht in der ersten verwenden. Ich fand heraus, ich kann dies tun:
return Promise.all(promises).then(function(data){
// Do something with the data here
return data;
}).then(function(data){
// Do more stuff here
});
Aber das scheint nicht, wie der richtige Weg, es zu tun ... Was ist der richtige Ansatz, um das?
Interessant. Vielen Dank. Ist es also nicht möglich, einen Wert nach der anfänglichen 'Promise'-Funktion zu verwerfen? Oder wird ein Fehler irgendwo in der Kette zum '.catch()' führen? Wenn das der Fall ist, was ist der Sinn von "ablehnen" an erster Stelle? Warum nicht einfach Fehler werfen? Nochmals vielen Dank, –
@JakeWilson: Das sind verschiedene Fragen. Aber du verwechselst zwei verschiedene Dinge: * Erstellen * und das Versprechen setzen und * das Versprechen * bearbeiten. Wenn Sie das Versprechen erstellen und festlegen, verwenden Sie "Auflösen" und "Ablehnen". Wenn Sie * bearbeiten *, wenn Ihre Verarbeitung fehlschlägt, werfen Sie tatsächlich eine Ausnahme, um den Fehlerpfad auszulösen.Und ja, Sie können auch eine Ausnahme vom ursprünglichen "Promise" -Rückruf auslösen (anstatt "reject" zu verwenden), aber nicht alle Fehler sind Ausnahmen. –
Gut erklärt. Danke nochmal –