Promise 中 resolve() 和 reject() 的区别和使用

在前端开发中,我们经常会用到 Promise,Promise 是一种异步编程的解决方案,它可以让我们更方便地处理异步操作。Promise 中的 resolve() 和 reject() 是 Promise 的两个重要方法,本文将对这两个方法进行详细说明。

Promise 中的 resolve() 方法

Promise 中的 resolve() 方法用于将 Promise 对象的状态从“未完成”变为“已完成”,并将 Promise 对象的返回值传递给 then() 方法中的回调函数。resolve() 方法接收一个参数,这个参数就是 Promise 对象的返回值。

示例代码:

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

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

在上面的示例代码中,我们创建了一个 Promise 对象,并在 1 秒钟后将 Promise 对象的状态从“未完成”变为“已完成”,同时传递了一个字符串参数“hello world”作为 Promise 对象的返回值。在 then() 方法中,我们可以通过回调函数获取到这个返回值。

Promise 中的 reject() 方法

Promise 中的 reject() 方法用于将 Promise 对象的状态从“未完成”变为“已失败”,并将错误信息传递给 catch() 方法中的回调函数。reject() 方法接收一个参数,这个参数就是错误信息。

示例代码:

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

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

在上面的示例代码中,我们创建了一个 Promise 对象,并在 1 秒钟后将 Promise 对象的状态从“未完成”变为“已失败”,同时传递了一个 Error 对象作为错误信息。在 catch() 方法中,我们可以通过回调函数获取到这个错误信息。

Promise 中的链式调用

Promise 中的 resolve() 和 reject() 方法可以通过链式调用来实现更复杂的异步操作。例如,我们可以在 then() 方法中返回一个新的 Promise 对象,然后继续调用 then() 方法。这样就可以实现多个异步操作的顺序执行。

示例代码:

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

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

在上面的示例代码中,我们首先创建了一个 Promise 对象,并在 1 秒钟后将 Promise 对象的状态从“未完成”变为“已完成”,同时传递了一个字符串参数“hello”作为 Promise 对象的返回值。在 then() 方法中,我们返回了一个新的 Promise 对象,并在 1 秒钟后将 Promise 对象的状态从“未完成”变为“已完成”,同时传递了一个字符串参数“world”作为 Promise 对象的返回值。在第二个 then() 方法中,我们可以通过回调函数获取到这个返回值。

总结

Promise 中的 resolve() 和 reject() 方法是 Promise 的两个重要方法,它们分别用于将 Promise 对象的状态从“未完成”变为“已完成”和“已失败”。我们可以通过链式调用来实现更复杂的异步操作。掌握 Promise 中的 resolve() 和 reject() 方法可以让我们更方便地处理异步操作。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65cb13caadd4f0e0ff4d91ea