您现在的位置是:亿华云 > 系统运维
Promise.prototype.finally 的作用,如何自己实现 Promise.prototype.finally
亿华云2025-10-03 13:59:16【系统运维】4人已围观
简介本文转载自微信公众号「三分钟学前端」,作者sisterAn。转载本文请联系三分钟学前端公众号。Promise.prototype.finally() 的作用Promise.prototype.fina
本文转载自微信公众号「三分钟学前端」,作用作者sisterAn。何自转载本文请联系三分钟学前端公众号。己实
Promise.prototype.finally() 的作用作用
Promise.prototype.finally() 是 ES2018 新增的特性,亿华云它回一个 Promise ,何自在 promise 结束时,己实无论 Promise 运行成功还是作用失败,都会运行 finally ,何自类似于我们常用的站群服务器己实 try { ...} catch { ...} finally { ...}
Promise.prototype.finally() 避免了同样的语句需要在 then() 和 catch() 中各写一次的情况
new Promise((resolve, reject) => { setTimeout(() => resolve("result"), 2000) }) .then(result => console.log(result)) .finally(() => console.log("Promise end")) // result // Promise endreject :
new Promise((resolve, reject) => { throw new Error("error") }) .catch(err => console.log(err)) .finally(() => console.log("Promise end")) // Error: error // Promise end注意:
finally 没有参数 finally 会将结果和 error 传递 new Promise((resolve, reject) => { setTimeout(() => resolve("result"), 2000) }) .finally(() => console.log("Promise ready")) .then(result => console.log(result)) // Promise ready // result手写一个 Promise.prototype.finally()
不管 Promise 对象最后状态如何,都会执行的作用操作
MyPromise.prototype.finally = function (cb) { return this.then(function (value) { return MyPromise.resolve(cb()).then(function () { return value }) }, function (err) { return MyPromise.resolve(cb()).then(function () { throw err }) }) }来自:https://github.com/sisterAn/blog
很赞哦!(12)
上一篇: 数据中心的演变