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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。