什么是 Promise?
Promise 是一种异步编程的解决方案,它解决了回调地狱的问题。Promise 可以看做是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。
Promise 有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。当状态从 pending 转变为 fulfilled 或 rejected 时,就称为 resolved(已完成)。
Promise 的基本用法
创建一个 Promise 对象:
const promise = new Promise((resolve, reject) => { // 这里是异步操作 });
Promise 接受一个函数作为参数,该函数有两个参数:resolve 和 reject。resolve 表示异步操作成功,reject 表示异步操作失败。
Promise 的 then 方法用于指定 resolved 状态的回调函数,catch 方法用于指定 rejected 状态的回调函数。
promise.then((value) => { // 异步操作成功 }).catch((error) => { // 异步操作失败 });
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