then promises promesas not catch javascript promise bluebird

javascript - promises - then catch finally promise



¿Cuál es el equivalente de Bluebird Promise.finalmente en las promesas nativas de ES6? (1)

A partir del 7 de febrero de 2018

Chrome 63+, Firefox 58+ y Opera 50+ admiten Promise.finally .

En Node.js 8.1.4+ (V8 5.8+), la función está disponible detrás de la bandera --harmony-promise-finally .

La github.com/tc39/proposal-promise-finally encuentra actualmente en la etapa 3 del proceso TC39.

Mientras tanto, para tener promesa. Finalmente funcionalidad en todos los navegadores; puede agregar then() después de catch() para invocar siempre esa devolución de llamada .

Ejemplo:

myES6Promise.then(() => console.log(''Resolved'')) .catch(() => console.log(''Failed'')) .then(() => console.log(''Always run this''));

Demostración de JSFiddle: https://jsfiddle.net/9frfjcsg/

O puede extender el prototipo para incluir un método finally() (no recomendado):

Promise.prototype.finally = function(cb) { const res = () => this; const fin = () => Promise.resolve(cb()).then(res); return this.then(fin, fin); };

Demostración de JSFiddle: https://jsfiddle.net/c67a6ss0/1/

También está la biblioteca Promise.prototype.finally shim.

Esta pregunta ya tiene una respuesta aquí:

Bluebird ofrece finally un método que se llama lo que suceda en su cadena de promesa. Me resulta muy útil para fines de limpieza (como desbloquear un recurso, ocultar un cargador, ...)

¿Hay un equivalente en las promesas nativas de ES6?