最终在本机E​​S6 Promise中,蓝鸟Promise.finally相当于什么?[重复]

2020/10/29 12:22 · javascript ·  · 0评论

蓝鸟提供了finally一种被称为诺言链中发生的任何事情方法。我发现它非常便于清洁(例如解锁资源,隐藏装载程序等)。

ES6的原生承诺中是否有等同的东西?

截至2018年2月7日

Chrome 63 +,Firefox 58+和Opera 50+支持Promise.finally

在Node.js 8.1.4+(V8 5.8+)中,该功能位于标志后面--harmony-promise-finally

所述Promise.prototype.finally ECMAScript的提案是目前在阶段3的TC39过程。

在此同时,promise.finally功能在所有浏览器中;您可以在then()后面添加其他内容catch()以始终调用该回调

例:

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

JSFiddle演示:https ://jsfiddle.net/9frfjcsg/

或者,您可以扩展原型以包括一个finally()方法(不推荐):

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

JSFiddle演示:https ://jsfiddle.net/c67a6ss0/1/

还有Promise.prototype.finally shim库。

本文地址:http://javascript.askforanswer.com/zuizhongzaibenjies6-promisezhonglanniaopromise-finallyxiangdangyushenmezhongfu.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!