1、简介
支持链式调用,将异步操作以同步操作的流程表达出来。
2、目的
解决前端回掉地狱问题:
回调地狱:
1)回调函数嵌套调用,外部回调函数异步执行的结果是嵌套的回调函数执行的条件;
2)不便于阅读/异常处理;
3)解决方法: promise链式调用;
4)终极方法:async/await
3、使用场景
1)请求处理;
2)普通函数处理
4、三种状态
1)Pending 创建Promise对象时的初始状态;
2)Fulfilled 成功;
3)Rejected 失败
5、Promis.all和Promise.race对比
1)all是Promise的状态都为成功才表示成功;
2)race是Promise的状态有一个成功,就表示成功
6、Promise缺点
1)无法取消Promise,一旦新建它就会立即执行,无法中途取消;
2)如果不设置回调函数,Promise内部抛出的错误,不会反应到外部;
3)当处于Pending状态时,无法得知目前进展到哪一阶段(是开始还是完成)。