面向你的对象 ——Promise 对象

阅读时长 4 分钟读完

简介

Promise 是 JavaScript 异步编程的一种解决方案,它能够优雅高效地处理异步操作和回调函数。Promise 对象是一个容器,里面保存着某个未来才会结束的异步操作的结果。在 Promise 对象未完成之前,可以添加回调函数,当 Promise 对象完成时,它会自动执行这些回调函数。

Promise 对象的三个状态

Promise 对象有三个状态:Pending、Fulfilled 和 Rejected。

Pending:Promise 实例刚刚被创建,它的结果尚未确定,处于等待状态。

Fulfilled:异步操作成功完成,Promise 实例的状态变为 Fulfilled,同时会保存异步操作的结果。

Rejected:异步操作失败,Promise 实例的状态变为 Rejected,同时会保存失败的原因。

Promise 对象的基本使用

使用 Promise 对象就是创建一个 Promise 对象,然后在 Promise 对象的 then 方法中添加一个成功回调和一个失败回调,当操作成功完成时,就会执行成功回调,如果操作发生错误,就会执行失败回调。

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

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

Promise 对象的进阶应用

Promise 对象有很多进阶应用,这里介绍一些常用的应用。

Promise.all()

Promise.all() 方法接收一个包含多个 Promise 实例的数组,并在所有的实例都已经完成时才返回一个新的 Promise,新的 Promise 的结果是一个数组,包含了所有实例的结果。如果其中一个实例发生错误,则该方法返回的 Promise 的状态变为 Rejected,同时会传递唯一的错误原因。

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

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

Promise.race()

Promise.race() 方法同样接收一个包含多个 Promise 实例的数组,它返回的 Promise 实例的状态是从已完成的 Promise 实例中获取的。无论是成功还是失败,只要有一个实例先完成,就会返回它的结果。

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

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

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

Promise.resolve() 和 Promise.reject()

Promise.resolve() 方法可以将一个值转换成 Promise 对象,如果参数已经是 Promise 对象,则直接返回该对象。它通常用来在当前 Promise 对象执行完毕后,再创建一个新的 Promise 对象。

Promise.reject() 方法和 Promise.resolve() 方法类似,它用来创建一个 Promise 对象,并直接设置该对象的状态为 Rejected,同时还可以传递一个错误对象作为参数。

总结

以上就是 Promise 对象的基本使用与进阶应用。在实际的开发中,Promise 对象是非常常用的异步编程解决方案,灵活运用 Promise 对象可以提高代码的可读性和可维护性。

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

纠错
反馈