ES9 的 Promise.prototype.finally:在 finally 块中做什么

阅读时长 2 分钟读完

ES9 的 Promise.prototype.finally:在 finally 块中做什么

Promise 是 JavaScript 中处理异步操作的一种方式,它可以避免回调地狱的问题,并且可以更加优雅地处理异步代码。ES9 引入了 Promise.prototype.finally 方法,该方法可以在 Promise 执行结束后,无论是 resolve 还是 reject,都会执行 finally 中的代码块。

Promise.prototype.finally 方法的语法如下:

其中,promise 是一个 Promise 对象,onFinally 是一个函数,它会在 Promise 执行结束后被调用。

在 finally 块中,我们可以做一些清理工作,比如关闭数据库连接、释放资源等。同时,finally 块中的代码也可以用来处理一些不管 Promise 执行是否成功都需要执行的操作。

下面是一个使用 Promise.prototype.finally 的示例代码:

-- -------------------- ---- -------
-------- ----------- -
  ------ --- ----------------- ------- -- -
    ------------- -- -
      ----------------
    -- ------
  ---
-

-----------
  ------------ -- -
    ------------------
  --
  -------------- -- -
    ---------------------
  --
  ----------- -- -
    ------------------ ---- ------------
  ---

在上面的代码中,我们定义了一个 fetchData 函数,它返回一个 Promise 对象。在 then 中,我们打印出了从 fetchData 函数中获取到的数据,在 catch 中,我们打印出了错误信息。在 finally 中,我们打印出了一个提示信息,表示 fetchData 函数的执行已经结束。

总结

ES9 的 Promise.prototype.finally 方法可以在 Promise 执行结束后,无论是 resolve 还是 reject,都会执行 finally 中的代码块。在 finally 块中,我们可以做一些清理工作或者处理一些不管 Promise 执行是否成功都需要执行的操作。使用 Promise.prototype.finally 可以让我们的代码更加健壮和优雅。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65c3e536add4f0e0ffe50733

纠错
反馈