Promise 中 then 究竟有没有返回值?

阅读时长 4 分钟读完

Promise 中 then 究竟有没有返回值?

Promise 是一种异步编程的解决方案,它可以解决异步调用中的回调地狱问题。在 Promise 中,then 方法被用来注册 Promise 状态改变时的回调函数。在 JavaScript 中,then 方法是否有返回值一直是前端开发者所关心的问题。在本文中,我们将探究 Promise 中 then 方法的返回值问题。

Promise.then 方法的返回值是否一直是 Promise?

在 Promise 中,then 方法的返回值与是否设置了 return 有关。当 then 方法返回值为 Promise 时,then 方法之后可以继续调用 then 方法进行链式调用,这就是 Promise 链式调用的特性。如果 then 方法没有设置 return,那么它的返回值为 undefined,Promise 链式调用将中止。

代码示例:

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

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

输出结果:

可以看到,第二个 then 方法中使用了 return,此时它的返回值为 undefined,导致了 Promise 链式调用的中止。所以每一个 then 方法的 return 都非常重要。

Promise 链式调用中的返回值问题

在 Promise 链式调用中,then 方法的返回值将被传递给下一个 then 方法的回调函数中,并作为参数传入。如果上一个 then 方法没有返回值,那么下一个 then 方法将被传递 undefined 作为参数。

代码示例:

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

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

可以看到,上一个 then 方法的返回值会作为下一个 then 方法的参数进行传递。如果上一个 then 方法没有返回值,那么下一个 then 方法将接收到的是 undefined。

总结

在 Promise 中,then 方法的返回值与是否设置了 return 有关。当 then 方法返回值为 Promise 时,Promise 链式调用可以继续进行。在 Promise 链式调用中,then 方法的返回值将被传递给下一个 then 方法的回调函数中,如果上一个 then 方法没有返回值,那么下一个 then 方法将接收到 undefined。

对于前端开发者来说,理解 Promise 中 then 方法的返回值问题非常重要,这将帮助我们更好地进行异步编程的处理。希望本文的介绍可以帮助读者更好地探究 Promise 中 then 方法的使用。

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

纠错
反馈