初探 JavaScript Promise

阅读时长 4 分钟读完

什么是 Promise?

Promise 是一种异步编程的解决方案,它解决了回调地狱的问题。Promise 可以看做是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。

Promise 有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。当状态从 pending 转变为 fulfilled 或 rejected 时,就称为 resolved(已完成)。

Promise 的基本用法

创建一个 Promise 对象:

Promise 接受一个函数作为参数,该函数有两个参数:resolve 和 reject。resolve 表示异步操作成功,reject 表示异步操作失败。

Promise 的 then 方法用于指定 resolved 状态的回调函数,catch 方法用于指定 rejected 状态的回调函数。

Promise 的链式调用

Promise 的 then 方法和 catch 方法都会返回一个新的 Promise 对象,因此可以进行链式调用。

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

Promise 的应用场景

Promise 可以解决回调地狱的问题,使得异步操作更加清晰、易读、易维护。Promise 还可以用于多个异步操作的同步,比如下面的例子:

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

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

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

Promise.all 方法用于将多个 Promise 对象包装成一个新的 Promise 对象,当所有的 Promise 对象都成功时,该新的 Promise 对象才会成功,返回的值是所有 Promise 对象的返回值组成的数组。

总结

Promise 是一种异步编程的解决方案,可以解决回调地狱的问题,使得异步操作更加清晰、易读、易维护。Promise 有三种状态:pending、fulfilled 和 rejected。Promise 的基本用法是创建一个 Promise 对象,并指定 resolved 和 rejected 的回调函数。Promise 的 then 方法和 catch 方法都会返回一个新的 Promise 对象,因此可以进行链式调用。Promise 还可以用于多个异步操作的同步,比如 Promise.all 方法。

参考文献

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

纠错
反馈