Promise 中 then 与 reject 的区别及使用方法

阅读时长 3 分钟读完

Promise 是 JavaScript 中用于异步编程的一种方法,能够更加优雅的处理异步操作,避免了回调地狱的问题。其中 then 和 reject 是 Promise 中两个非常重要的方法,接下来我们将深入研究它们的区别和使用方法。

Promise.then()

Promise.then() 是 Promise 的核心方法之一,用于获取 Promise 执行成功的结果并处理它。then() 方法接收两个回调函数作为参数(也可以只有一个),分别是 Promise 运行成功时的回调函数,和 Promise 运行失败时的回调函数。其中成功的回调函数接收 Promise 传递的结果作为参数,失败的回调函数则接收 Promise 返回的错误对象作为参数。

我们可以通过以下代码来演示 then() 方法的用法:

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

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

上面的代码中,我们创建了一个 Promise,并且使用 setTimeout 来模拟异步操作(1 秒后执行 resolve)。在 then() 方法中,我们分别传递了一个成功的回调函数和失败的回调函数。当 Promise 成功执行时,控制台将输出 "Promise Success"。

Promise.reject()

Promise.reject() 方法用于创建一个带有拒绝原因的 Promise 对象,常常用于抛出错误或异常。reject() 方法接收一个错误对象作为参数,该对象可以是一个字符串或一个 Error 对象。

以下是 Promise.reject() 的一个示例:

上面的代码中,我们先创建了一个 Promise,调用 reject() 方法并传递一个错误对象来创建一个拒绝的 Promise 对象。然后我们使用 catch() 方法来处理拒绝的 Promise 对象并输出错误信息。

then 和 reject 的区别

从字面意思上看,then() 和 reject() 方法功能不一样,前者是用来处理 Promise 成功的结果,后者用于拒绝 Promise 并处理错误。但是在具体应用时,它们有两个主要的区别:

  1. then() 和 catch() 方法都返回一个新的 Promise 对象,因此可以链式调用。reject() 方法也是返回一个新的 Promise 对象,但如果不将其作为链式调用的一部分,它可能无法被处理。

  2. then() 和 catch() 方法都会处理 Promise 对象。reject() 方法会返回一个拒绝的 Promise 对象,并将控制权交回给外部代码,以便下一步处理。

总结

Promise 是一种非常有用的方法,尤其适用于异步工作流程。then() 和 reject() 是其不可或缺的部分,其中 then() 方法用于处理成功的 Promise,而 reject() 方法用于拒绝 Promise 并处理错误信息。当使用这些方法时,请始终记住它们的区别并选择正确的方法来处理 Promise 对象。

希望本篇文章给大家带来了帮助,相信在今后的开发工作中,大家能够灵活运用这两个重要的方法来处理异步操作,提高开发效率。

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

纠错
反馈