function promiseall(promisearr){
if(!Array.isArray(promisearr)) return console.log('参数非数组') // 判断是否为数组
return new Promise((resolve,reject)=>{
let result =[] // 定义数组存放成功的结果
for(let i=0;i<promisearr.length;i++){ // 遍历数组
Promise.resolve(promisearr[i]).then((value)=>{ // 将数组里的每个Promise包装成一个成功的promise
result.push(value); // 如果promise是成功的,那么就把成功的值存入result数组
if(i==promisearr.length-1) return resolve(result); // 当遍历到最后一个promise时候,将result数组作为成功的值,并将promiseall的状态改为成功
},(err)=>{return reject(err)}) // 如果其中的promise是失败的,,则直接走失败的回调,并将promiseall的状态改为失败
};
})
};
promiseall([Promise.resolve('1'),Promise.resolve('2'),Promise.resolve('3')]).then(
(value)=>{console.log(value)},
(reason)=>{console.log(reason)}
)
![]()