📅  最后修改于: 2023-12-03 15:01:38.403000             🧑  作者: Mango
Promise.finally() 方法返回一个新的Promise,当promise无论成功或失败都会执行指定的回调函数,不过需要注意的是,finally不传递任何参数,仅仅用于执行操作后触发副作用,如清除之前的状态等。
promise.finally(onFinally);
参数说明:
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
const success = Math.random() > 0.5;
if (success) {
resolve('Success!');
} else {
reject('Error!');
}
}, 1000);
});
promise
.then(result => {
console.log(result);
})
.catch(error => {
console.error(error);
})
.finally(() => {
console.log('Promise completed!');
});
输出结果如下:
Success! // 成功时的结果
Promise completed! // 无论成功和失败都会执行
Promise.finally() 方法的作用是在 Promise 最终执行完毕后执行指定函数,使得可以在 Promise 执行完毕后进行状态检查或副作用触发。在实现上,finally在then和catch之后执行,但不会改变Promise的状态,此方法在经典的Promise API已经普遍被支持。