Promise 中关于 resolve 和 reject 方法的区别

阅读时长 4 分钟读完

什么是 Promise?

Promise 是异步编程的一种解决方案,可以避免回调地狱,并提供一种更加优雅和简洁的方式来处理异步操作。它是 ECMAScript 6 中新增的一个特性,使用 Promise 可以轻松地处理异步操作和链式调用。

Promise 有三种状态:

  • 异步操作执行成功时,状态变为 resolved(已完成)。
  • 异步操作执行失败时,状态变为 rejected(已拒绝)。
  • 异步操作还没有执行完成时,状态为 pending(未完成)。

Promise 中的 resolve 和 reject 方法

Promise 中的 resolvereject 方法用于改变 Promise 的状态,从而触发相应的回调函数执行。resolve 方法用于将 Promise 的状态从 pending 变为 resolved,而 reject 方法则用于将 Promise 的状态从 pending 变为 rejected

resolve 方法

在 Promise 执行异步操作成功后,使用 resolve 方法将异步操作的结果传递给 then 方 法中的回调函数,从而触发该回调函数的执行。具体示例代码如下:

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

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

在上面的代码中,使用 setTimeout 方法模拟了一个异步操作,1 秒后执行 resolve 方法将异步操作的结果传递给 then 方法中的回调函数进行处理。

reject 方法

在 Promise 执行异步操作失败时,使用 reject 方法将错误信息传递给 catch 方法中的回调函数,从而触发该回调函数的执行。具体示例代码如下:

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

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

在上面的代码中,使用 setTimeout 方法模拟了一个异步操作,1 秒后执行 reject 方法将错误信息传递给 catch 方法中的回调函数进行处理。

Promise 的学习和指导意义

使用 Promise 可以轻松地处理异步操作和链式调用,并避免回调地狱。了解 Promise 中的 resolvereject 方法可以帮助我们更好地理解 Promise 的工作原理,从而更加高效地使用 Promise 来处理异步操作。在使用 Promise 时,应该注意 Promise 状态的变化,并及时处理 Promise 的 reject 状态,避免出现未捕获的错误。

更多关于 Promise 的知识可以参考 MDN Promise

总结

Promise 中的 resolvereject 方法用于改变 Promise 的状态,从而触发相应的回调函数执行。resolve 方法用于将 Promise 的状态从 pending 变为 resolved,而 reject 方法则用于将 Promise 的状态从 pending 变为 rejected。对于使用 Promise 来处理异步操作和链式调用的前端开发人员来说,学习和理解 Promise 中的 resolvereject 方法是非常重要的。


参考资料

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

纠错
反馈