ES9 中的 Promise.finally 解决异步的问题

阅读时长 3 分钟读完

随着 Web 技术的发展,异步编程在前端领域中扮演着不可替代的角色。在异步编程中,Promise 是一种非常常用的技术。在 ES9 中,新增加了 Promise.finally 方法,让我们可以更方便地处理异步编程中的问题。

Promise.finally 方法介绍

Promise.finally 方法在 Promise 状态改变后,无论是 resolve 还是 reject,都会执行最后的回调函数。该方法可以被看作是 finally 语句的异步版本。

语法如下:

其中,onFinally 参数为回调函数,无论 Promise 状态如何都会被调用。

使用 Promise.finally 处理异步代码

在进行异步操作时,可能会遇到需要在操作结束后做某些处理的情况,这时可以使用 Promise.finally 方法来解决。

以下是一个获取用户信息的异步操作的示例:

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

在获取用户信息后,可能需要关闭 loading 界面,这时可以在代码中使用 Promise.finally 方法来实现这一功能:

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

在以上代码中,无论 Promise 是否 resolve 或者 reject,finally 回调都会被调用,从而实现了关闭 loading 界面的功能。

Promise.finally 取代 Promise.then 方法中的回调

在 Promise.then 方法中,经常需要在 Promise 状态改变时执行一些公共的操作,比如关闭 loading 界面、清空输入框等等。这时,我们可以使用 Promise.finally 方法来代替 Promise.then 方法中的回调。

以下是一个示例代码:

总结

Promise.finally 方法可以使回调函数被更好地封装,提高代码的可读性和可维护性。使用 Promise.finally 取代 Promise.then 方法中的回调函数,可以更加简洁地处理异步操作的公共代码。在日常开发中,合理地运用 Promise.finally 方法可以大大提高异步编程的效率和质量。

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

纠错
反馈