Promise 的 then 方法有什么作用?

推荐答案

Promisethen 方法用于处理 Promise 对象的成功状态(fulfilled)或失败状态(rejected)。它接收两个回调函数作为参数:

  • 第一个回调函数(onFulfilled)在 Promise 成功时被调用,并接收 Promise 的解析值(resolved value)作为参数。
  • 第二个回调函数(onRejected)在 Promise 失败时被调用,并接收 Promise 的拒绝原因(rejection reason)作为参数。

then 方法返回一个新的 Promise 对象,允许链式调用。

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

本题详细解读

then 方法的作用

  1. 处理成功状态:当 Promise 被成功解析时,then 方法的第一个回调函数会被调用,并接收解析值作为参数。这个回调函数通常用于处理异步操作的成功结果。

  2. 处理失败状态:当 Promise 被拒绝时,then 方法的第二个回调函数会被调用,并接收拒绝原因作为参数。这个回调函数通常用于处理异步操作的失败情况。

  3. 链式调用then 方法返回一个新的 Promise 对象,这使得可以继续调用 then 方法,形成链式调用。每个 then 方法都可以处理前一个 Promise 的结果,并返回一个新的 Promise

  4. 错误传播:如果在 then 方法的回调函数中抛出异常,或者返回一个被拒绝的 Promise,这个异常或拒绝原因会被传递给链中的下一个 catchthen 的第二个回调函数。

示例代码

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

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

在这个示例中,promise 在 1 秒后被成功解析,then 方法的第一个回调函数被调用,并输出 操作成功。然后,它返回一个新的值 继续处理,这个值被传递给下一个 then 方法的回调函数,并输出 继续处理

纠错
反馈