Promise.all
Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。
参数可以不是数组,但必须具有 Iterator 接口,且返回的每个成员都是 Promise 实例
1 | var p1 = new Promise((reslove, reject)=> { |
p的状态由p1,p2,p3共同决定,有两种情况:
状态都是
fulfilled,p的状态才会变成fulfilled,p1,p2,p3组成一个数组作为返回值1
2
3
4
5p.then((res)=> {
console.log(res) //[1, 2, 3]
}).catch(res=> {
console.log(res)
})有一个状态被
rejected,p的状态就变成rejected,此时第一个被reject的实例的返回值,会传递给p的回调函数1
2
3
4
5
6
7
8var p2 = new Promise((reslove, reject)=> {
reject(2)
})
p.then((res)=> {
console.log(res)
}).catch(res=> {
console.log(res) //2
})
Promise.race
Promise.race()方法也是是将多个 Promise 实例,包装成一个新的 Promise 实例。
1 | var p1 = new Promise((reslove, reject)=> { |
只要p1、p2、p3之中有一个实例率先改变状态,p的状态就跟着改变。那个率先改变的 Promise 实例的返回值,就传递给p的回调函数 。
1 | var p2 = new Promise((reslove, reject)=> { |