1. 概念
- 承诺:分为三个状态:正在进行时,已完成,已失败
- 完成和失败的状态只允许发生一次且一个
- promise其实就利用原生js进行的封装
2. 语法
- Promise是个构造函数
1:new执行
第一步:创建一个实例,实例身上有then方法和catch方法
let p = new Promise((resolve,reject)=>{
resolve();
reject();
})
第二步:执行then方法传入两个回调函数:
p.then(()=>{
// 完成时要做的事情
// 想做什么做什么
return 新的promise实例2
}).then(()=>{
// 新的promise2的成功处理
// 想做什么做什么
return 新的promise实例3
}).then(()=>{
// 新的promise3的成功处理
// 想做什么做什么
return ......;
})
p.catch(()=>{
// 失败时要做的事情
// 想做什么做什么
return 新的promise实例2
}).catch(()=>{
// 新的promise2的失败处理
// 想做什么做什么
return ......;
})
```
2:直接作为对象使用
- Promise.all批量检测
```js
var p1 = new Promise(...);
var p2 = new Promise(...);
var p3 = new Promise(...);
Promise.all([p1,p2,p3]).then((res)=>{
// 全部成功时,要做的事情
// res是个数组,内包含所有promise实例的成功之后的数据
}).catch((res)=>{
// 只要有一个失败,要做的事情
})