如何使用 ECMAScript 2018 中新增的 Promise.finally 方法?

阅读时长 4 分钟读完

在前端开发中,异步编程是非常常见的。而 Promise 是一种在 JavaScript 中进行异步编程的方式。在 ECMAScript 2018 中,Promise 新增了一个 Promise.finally 方法,它可以让我们在 Promise 执行结束后,无论是成功还是失败,都能够执行一些操作。本文将介绍 Promise.finally 方法的用法和注意事项。

Promise.finally 方法的用法

Promise.finally 方法接收一个回调函数作为参数,该回调函数会在 Promise 执行结束后调用。无论 Promise 是成功还是失败,该回调函数都会被执行。该回调函数不接收任何参数,也不会改变 Promise 的状态。

下面是 Promise.finally 方法的基本用法:

下面是一个示例代码,展示了 Promise.finally 方法的用法:

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

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

注意事项

在使用 Promise.finally 方法时,需要注意以下几点:

1. Promise.finally 方法不改变 Promise 的状态

Promise.finally 方法不会改变 Promise 的状态。如果 Promise 处于成功状态,那么在 finally 方法中返回一个失败的 Promise,也不会改变 Promise 的状态。

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

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

2. Promise.finally 方法的返回值不会影响后续的 then 方法

Promise.finally 方法的返回值不会影响后续的 then 方法。如果在 finally 方法中返回一个新的 Promise,那么后续的 then 方法会接收到前一个 Promise 的结果,而不是新的 Promise 的结果。

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

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

3. Promise.finally 方法的回调函数不接收任何参数

Promise.finally 方法的回调函数不接收任何参数。如果需要在 finally 方法中访问 Promise 的结果或错误信息,可以使用 Promise.then 方法或 Promise.catch 方法。

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

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

结论

Promise.finally 方法是 ECMAScript 2018 中新增的一个方法,它可以让我们在 Promise 执行结束后,无论是成功还是失败,都能够执行一些操作。在使用该方法时,需要注意它不会改变 Promise 的状态,它的返回值不会影响后续的 then 方法,以及它的回调函数不接收任何参数。

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

纠错
反馈