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()方法:
例:
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
相关用法
- Javascript promise resolve()用法及代码示例
- Javascript Promise.all()用法及代码示例
- Javascript Promise.allSettled()用法及代码示例
- JavaScript Promise.race()用法及代码示例
- JavaScript promise reject()用法及代码示例
- Node.js fs.promise.readdir()用法及代码示例
注:本文由纯净天空筛选整理自naman9071大神的英文原创作品 JavaScript Promise finally() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。