概念:
Promise 对象代表一个异步操作,有三种状态:
pending: 初始状态,不是成功或失败状态。
fulfilled: 意味着操作成功完成。
rejected: 意味着操作失败。
学习链接:
https://www.runoob.com/w3cnote/javascript-promise-object.html
基础用法:
```javascript
var promise = new Promise(function(resolve, reject) {
// 执行成功
resolve()
// 执行失败
reject()
});
promise .then(res => {
这里拿到的是resolve()
}).catch(res =>{
这里拿到的是reject()
})
Promise.all
var p = Promise.all([p1,p2,p3]).then().......;
p 的状态由 p1、p2、p3 决定,分成两种情况。
(1)只有p1、p2、p3的状态都变成fulfilled,p的状态才会变成fulfilled,此时p1、p2、p3的返回值组成一个数组,传递给p的回调函数。
(2)只要p1、p2、p3之中有一个被rejected,p的状态就变成rejected,此时第一个被reject的实例的返回值,会传递给p的回调函数。
Promise.race【用法同all, 区别如下】
只要p1、p2、p3之中有一个实例率先改变状态,p的状态就跟着改变。那个率先改变的Promise实例的返回值,就传递给p的返回值。