JavaScript Promise finally() 方法
Promise 对象的finally() 方法用于在一个 Promise 被结算时返回一个 Promise,即它要么被执行要么被拒绝。 Promise 是一个 JavaScript 对象,它在异步函数成功执行后生成一个值。当它由于超时而没有成功执行时,它会产生一个错误。
一旦承诺被解决,它就可以用来执行清理任务,因为无论承诺是被履行还是被拒绝,它总是被执行。它还防止了 Promise 的 then() 和 catch() 方法中的代码重复。
句法:
task.finally(function() {
// Task to be performed when
// the promise is settled
});
参数:此方法有一个参数,如上所述,如下所述:
- onFinally: Promise 结算时调用的函数。
返回值:它返回一个 Promise,其 finally 处理程序设置为指定的函数。
下面的例子演示了 finally() 方法:
例子:
Javascript
// Define the Promise
let task = new Promise((resolve, reject) => {
setTimeout(() => {
// Reject the Promise
reject("Promise has been rejected!");
}, 2000);
});
task
.then(
(data) => {
console.log(data);
},
// Handle any error
(error) => {
console.log("Error:", error);
}
)
// Specify the code to be executed
// after the Promise is settled
.finally(() => {
console.log(
"This is finally() block that is " +
"executed after Promise is settled"
);
});
输出:
Error: Promise has been rejected!
This is finally() block that is executed after Promise is settled