📜  JavaScript Promise finally() 方法

📅  最后修改于: 2022-05-13 01:56:51.216000             🧑  作者: Mango

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