返回
Promise.prototype.finally(): 终结承诺的最终之道
前端
2023-11-18 06:35:32
**Promise.prototype.finally() 简介**
Promise.prototype.finally() 是 JavaScript ES2018 中引入的新方法。它允许您在 Promise 完成后执行一个 finally 回调函数,无论它是成功完成还是失败完成。这对于在 Promise 链的末尾执行一些通用的清理工作非常有用,例如关闭资源、显示加载指示器或记录错误。
**语法**
finally(onFinally)
* `onFinally`: 在 Promise 完成后执行的函数。它接受一个参数,该参数是 Promise 的结果(如果 Promise 成功完成)或错误(如果 Promise 失败完成)。
**示例**
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('成功!');
}, 1000);
});
promise
.then(result => {
console.log(结果:${result}
);
})
.catch(error => {
console.error(错误:${error}
);
})
.finally(() => {
console.log('终于完成了!');
});
**Promise.prototype.finally() 的好处**
使用 Promise.prototype.finally() 有几个好处:
* **简化代码:** Promise.prototype.finally() 可以简化 Promise 链的代码。您无需再编写多个 `.then()` 和 `.catch()` 来处理成功和失败的情况。
* **提高可读性:** Promise.prototype.finally() 使代码更易于阅读和理解。您可以将所有通用的清理工作集中在一个 finally 回调函数中,从而使 Promise 链更易于理解。
* **错误处理:** Promise.prototype.finally() 可以用于集中处理 Promise 链中的所有错误。您可以将错误处理代码放在 finally 回调函数中,从而简化代码并提高可读性。
**结论**
Promise.prototype.finally() 是 ES2018 中的一个非常有用的新方法。它可以简化代码、提高可读性和集中处理错误。如果您正在使用 Promise,我强烈建议您使用 Promise.prototype.finally() 来简化和改进您的代码。