function promiseAll(promiseArr){
const result = []
let count = 0
return new Promise((resolve,reject)=>{
promiseArr.forEach((promise, index)=>{
const addData = (index, data)=>{
result[index] = data
count++
if(count===promiseArr.length)resolve(resolve(result))
}
if(promise instanceof Promise){
promise.then(data=>{
addData(index, data)
},err=>{
reject(err)
})
} else {
addData(index, promise)
}
})
})
}
promiseAll([
new Promise(resolve=>{resolve(11)}),
new Promise(resolve=>{
setTimeout(()=>{
resolve(22)
},2000)
}),
new Promise(resolve=>{
setTimeout(()=>{
resolve(33)
},1000)
}),
]).then(data=>{
console.log(data)
})