Was ist das Äquivalent von Bluebird Promise.finally in nativen ES6-Versprechungen? [duplicate]
Lesezeit: 2 Minuten
Aric Lasri
Bluebird bietet a finally Methode, die aufgerufen wird, was auch immer in Ihrer Versprechenskette passiert. Ich finde es sehr praktisch für Reinigungszwecke (wie das Freischalten einer Ressource, das Verstecken eines Loaders, …)
Gibt es ein Äquivalent in den nativen Versprechungen von ES6?
Promise.finally-Funktionalität in der Zwischenzeit in allen Browsern zu haben; Sie können eine zusätzliche hinzufügen then() nach dem catch() um diesen Rückruf immer aufzurufen.
Es ist erwähnenswert, dass .catch() nicht nur den Fehler des ursprünglichen Promise abfängt, sondern auch alle Fehler, die im ursprünglichen .then()-Handler ausgelöst werden. Es ist also leicht, versehentlich eine Fehlermeldung mit diesem Code zu unterdrücken.
Warum ist der prototype.finally Vorgehensweise nicht empfehlenswert?
– Jan Hommes
18. Oktober 2017 um 13:45 Uhr
Es dauerte eine Weile, bis ich herausfand, wie finally sollte einen Parameter als Status erhalten, unabhängig vom Promise-Resolution/Reject Promise.prototype.finally = function(cb) { const res = () => this const fin = (value) => Promise.resolve(cb(value)).then(res) return this.then(fin, fin)
– As
22. Oktober 2017 um 17:25 Uhr
@JanHommes Es wird niemals empfohlen, Prototypen mit benutzerdefinierten Methoden zu erweitern. Wenn die Spezifikation beschließt, eine native Implementierung von hinzuzufügen .finally() oder welche Methode Sie auch immer zum Prototyp hinzufügen, Sie würden am Ende eine fehlerhafte Implementierung erhalten und Ihre App funktioniert möglicherweise nicht mehr in neueren Browsern.
– Jérôme Indefenzo
7. Dezember 2017 um 16:06 Uhr
12778900cookie-checkWas ist das Äquivalent von Bluebird Promise.finally in nativen ES6-Versprechungen? [duplicate]yes
ECMAScript-Vorschlag (github.com/tc39/proposal-promise-finally) und das Flag von v8 (Knoten –harmony_promise_finally app.js) existieren.
– masakielastisch
1. Juli 2017 um 18:19 Uhr
Sie können die versuchen
when
Paket npmjs.com/package/when– Arno
16. Oktober 2017 um 15:12 Uhr