前言
首先,我们要知道Promise
是一个异步操作,存放着某个未来才会结束的事件,它对外还提供了自身的Api
。promise
可以获取异步操作的最终状态。
Api
- 自身方法
-
all()方法
all()
方法是一个并发方法,当多个异步操作同时进行时,在所有的异步操作全部执行成功后才会进入到then()
方法中执行 -
race()方法
race()
方法是一个赛跑方法,当多个异步操作执行时,只要有一个异步操作执行完毕,就会进入到then()
中。 -
resolve()方法
resolve()
方法是promise
实例的回调函数中的第一个参数,用来捕获成功信息,并以参数的形式返回。 -
reject()方法
reject()
方法是promise
实例的回调函数中的第二个参数,用来捕获失败信息,并以参数的形式返回。
- 原型方法
then()方法
then()
方法可以链式调用在promise
实例后,有两个回调函数作为参数,第一个回调函数捕获成功,第二个回调函数捕获失败。catch()方法
catch()
方法相当于then()
方法中的的第二个回调函数,用来捕获失败信息并返回。在执行出错时,不会卡死,也会执行catch()
方法。
状态
- 分三种状态
pending
初始状态
fulfilled
成功状态
rejected
失败状态 - 状态的改变
promise
的状态不受外界的影响,只有异步操作的结果能够决定当前是那种状态。promise
的状态不可逆,一旦改变就不会在变,任何时候都可以获取到这个状态。
应用场景
- ajax的封装
参考我的一篇博客,最好可以手写:
https://blog.csdn.net/m0_50512274/article/details/111312366 - 图片的异步加载
参考我的博客:
https://blog.csdn.net/m0_50512274/article/details/110651353 wx.request()
的封装
https://blog.csdn.net/m0_50512274/article/details/111395737uni.request()
的封装
待更新。。。。
总结
处处茅庐,多多指教