promise.all()
- promise.all()是promise的一个静态方法,将多个promise实例合并成一个promise实例,并且返回所有promise的resolve结果并以数组的方式呈现出来,但是如果输入的promise中有reject回调,则会报错,必须保证输入的promise的状态都是resolve,
let p1 = new Promise((res,rej)=>{
setTimeout(()=>{
res('你好哇')
},1000)
})
let p2 = new Promise((res,rej)=>{
setTimeout(()=>{
res('李银河')
},2000)
})
Promise.all([p1,p2]).then(res=>{
console.log(res)
})
function myPromiseAll(lists){
return new Promise((resolve,reject)=>{
let myArr = []
let num = 0;
lists.forEach((item,index)=>{
item.then(res=>{
myArr[index] = res;
num ++;
if(num == lists.length){
resolve(myArr)
}
})
})
myPromiseAll([p1,p2]).then(res=>{
console.log(res)
})