ECMAScript 2017 中 Promise 中的 then、catch、finally 方法的使用方法

阅读时长 4 分钟读完

ECMAScript 2017 中 Promise 中的 then、catch、finally 方法的使用方法

Promise 是一种在 ECMAScript 2015 (ES6) 中引入的对象,它用于表示异步操作最终完成(或失败)并生成相应的结果。 在 ECMAScript 2017 中增加了 then、catch 和 finally 方法,使 Promise 更加灵活强大。本文将介绍这些方法的使用方法,并提供示例代码。

then 方法

then 方法用于处理 Promise 成功时的情况,它接收两个可选参数:onFulfilled 和 onRejected,它们分别表示成功和失败时要执行的回调函数。

  • onFulfilled: 成功时执行的回调函数,可以接收传入的值作为参数。

  • onRejected: 失败时执行的回调函数,可以接收错误对象作为参数。

示例代码:

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

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

在以上代码中,我们创建了一个 Promise 对象并设置了一个 1 秒钟后执行的定时器。在定时器函数中,我们调用了 resolve 方法将 Promise 标记为成功,并返回一个字符串。接着我们使用 then 方法来监听 Promise 的状态变化,当它成功时我们将打印返回的字符串,如果它失败我们将输出错误信息。

catch 方法

catch 方法用于处理 Promise 失败时的情况,它接收一个参数 onRejected,它表示失败时要执行的回调函数。

  • onRejected: 失败时执行的回调函数,可以接收错误对象作为参数。

示例代码:

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

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

在以上代码中,我们创建了一个 Promise 对象并设置了一个 1 秒钟后执行的定时器。在定时器函数中,我们调用了 reject 方法将 Promise 标记为失败,并返回一个错误对象。接着我们使用 catch 方法来监听 Promise 的状态变化,如果它失败我们将输出错误信息。

finally 方法

finally 方法用于在 Promise 无论成功或失败都会执行的情况,它接收一个参数 onFinally,它表示要执行的回调函数。

  • onFinally: 无论 Promise 成功或失败都执行的回调函数。

示例代码:

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

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

在以上代码中,我们创建了一个 Promise 对象并设置了一个 1 秒钟后执行的定时器。在定时器函数中,我们调用了 reject 方法将 Promise 标记为失败,并返回一个错误对象。接着我们使用 finally 方法来监听 Promise 的状态变化,无论它成功或失败我们都将输出一个日志信息。

结论

通过上述介绍,我们了解了在 ECMAScript 2017 中 Promise 中的 then、catch、finally 方法的使用方法,它们使得 Promise 更加灵活强大,可以更好地处理异步操作。使用 Promise 的 then、catch、finally 方法可以帮助我们更好地处理异步操作的结果,提高代码的可读性和可维护性。

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

纠错
反馈