ECMAScript 2018 引入 Promise.prototype.finally() 正式成为 Promise API 的一员

ECMAScript 2018 引入 Promise.prototype.finally() 正式成为 Promise API 的一员

ECMAScript 2018 引入了 Promise.prototype.finally() 方法,正式成为 Promise API 的一员。这个方法是用于在 Promise 结束时执行一些操作的,无论 Promise 的状态如何,都会执行。这个方法在实际开发中非常有用,可以用来释放资源、清理代码等。

Promise.prototype.finally() 方法可以接收一个回调函数作为参数,该回调函数只有一个参数,即 Promise 状态的字符串。如果 Promise 被 fulfilled,那么参数就是 "fulfilled";如果 Promise 被 rejected,那么参数就是 "rejected"。如果 Promise 被 resolved,那么参数就是 undefined。

Promise.prototype.finally() 方法返回一个新的 Promise 对象,该对象的状态与原始 Promise 对象的状态相同,但是它会在原始 Promise 对象的状态被确定后执行指定的回调函数。

下面是一个示例代码:

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

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

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

在上面的代码中,我们定义了一个 fetchData() 函数,该函数使用 fetch() 方法从指定的 URL 中获取数据。在 Promise 对象的 then() 方法中,我们通过检查 response.ok 属性来检查响应是否成功,并返回 JSON 数据。在 Promise 对象的 finally() 方法中,我们输出一条消息,表示 fetchData() 函数已经完成。

最后,我们调用 fetchData() 函数,并使用 then() 方法处理 Promise 对象的结果,或者使用 catch() 方法处理 Promise 对象的错误。

总结

ECMAScript 2018 引入了 Promise.prototype.finally() 方法,可以用于在 Promise 结束时执行一些操作的。这个方法非常有用,可以用来释放资源、清理代码等。在实际开发中,我们可以使用该方法来提高代码的可读性和可维护性。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/66124362d10417a2222dcbe9