ES6 Promise settled callback?

阅读时长 4 分钟读完

在异步编程中,Promise 是一种非常强大的工具。它可以帮助我们处理异步操作的结果,并且使代码更加易于理解。在 ES6 中,Promise 成为了 JavaScript 的一个内置对象,并且得到了广泛的应用。

但是,当我们使用 Promise 时,有时候需要在 Promise 被 settled(即 fulfilled 或 rejected)后执行一些操作。在这种情况下,我们可以使用 settled callback。

settled callback 是什么?

settled callback(已完成回调)指的是当 Promise 被 resolved 或 rejected 后要执行的回调函数。settled callback 可以接受两个参数:resolved 值和 rejected 值。

以下是一个示例,展示了如何在 Promise 被 settled 后执行 settled callback:

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

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

在上面的示例中,Promise 使用 finally 方法来执行 settled callback。无论 Promise 最终是被 resolved 还是 rejected,都会执行 finally 方法中的代码。

settled callback 的作用

当我们需要在 Promise 被 settled 后执行一些操作时,settled callback 就变得非常有用了。以下是 settled callback 的一些常见用途:

清理操作

当我们进行异步操作时,可能会创建一些临时资源(例如打开文件或者建立数据库连接)。这些资源需要在操作完成后被正确地关闭。settled callback 可以帮助我们在 Promise 被 settled 后执行这些清理操作。

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

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

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

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

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

在上面的示例中,我们使用 settled callback 来确保文件句柄被正确关闭。

日志记录

当 Promise 被 settled 时,我们可以记录一些信息,例如成功或失败的结果。settled callback 可以帮助我们在 Promise 被 settled 后执行这些日志记录操作。

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

在上面的示例中,我们使用 settled callback 来记录 Promise 被 settled 的信息。

总结

通过使用 settled callback,我们可以在 Promise 被 settled 后执行一些操作。settled callback 可以用于清理操作、日志记录等场景。它能够帮助我们更好地管理异步代码,使其更加健壮和易于维护。

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

纠错
反馈