在JavaScript函数then()是什么意思

阅读时长 4 分钟读完

在 JavaScript 中,Promise 是一种非常强大的异步编程工具。它允许我们以更具可读性和可维护性的方式编写异步代码。而 then() 函数是 Promise 对象上最重要的方法之一,它用于处理 Promise 的解决或拒绝状态。

then() 方法的语法

在 Promise 对象上调用 then() 方法,其语法如下:

其中,onResolvedonRejected 都是函数类型,分别表示 Promise 被解决和被拒绝时的回调函数。

当 Promise 状态变为“已解决”时,会调用 onResolved 函数,并将 Promise 解决时传递的值作为参数传入该函数中。当 Promise 状态变为“已拒绝”时,则会调用 onRejected 函数,并将 Promise 拒绝时传递的原因作为参数传入该函数中。

需要注意的是,then() 方法返回的是一个新的 Promise 对象,因此可以链式调用多个 then() 方法。

then() 方法的示例

下面是一个简单的 Promise 示例,展示了 then() 方法的使用:

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

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

在上面的示例中,首先创建了一个 Promise 对象,并在 1 秒后将其解决。然后使用 then() 方法添加了两个回调函数,分别处理 Promise 的解决和拒绝状态。

由于 Promise 被解决,因此会调用第一个回调函数,并将 "Promise 已解决" 作为参数传递给该函数。最终输出内容为 "Promise 已解决"。

then() 方法的深度理解

then() 方法是 Promise 对象最重要的方法之一,它不仅可以让我们在 Promise 被解决或被拒绝时执行相应的操作,还可以让我们构建 Promise 链式调用以更好地处理异步代码。

当我们在 Promise 实例上调用 then() 方法时,它实际上返回了一个新的 Promise 对象。这个新的 Promise 对象与原始 Promise 对象有以下几个关系:

  • 如果 then() 方法中的回调函数返回一个值,新的 Promise 对象将会被解决,并且该值将作为解决值。
  • 如果 then() 方法中的回调函数抛出一个异常,新的 Promise 对象将会被拒绝,并且该异常将作为拒绝原因。
  • 如果 then() 方法中的回调函数返回另一个 Promise 对象,新的 Promise 对象将跟随这个新的 Promise 对象的状态,即如果新的 Promise 对象被解决,则该新的 Promise 对象的解决值将作为新的 Promise 对象的解决值,反之亦然。
  • 如果 then() 方法中的回调函数没有返回任何值,新的 Promise 对象将会被解决,并且其解决值为 undefined。

由于 then() 方法的链式调用特性,我们可以使用多个 then() 方法来处理异步操作。例如:

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

在上面的示例中,我们创建了一个 Promise 对象,并使用三个 then() 方法处理它。每次 then() 方法返回的是一个新的 Promise 对象,因此可以通过链式调用将多个

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

纠错
反馈