Promise.all() 有什么个性

将多个promise实例包装成一个新的promise实例,胜利返回一个后果数组,失败返回第一个reject的值。胜利:传一个数组,外面都是promise,(也能够不是promise,也能够是常量)失败:其中一个执行报错,会返回到catch,其余的promise还是会执行,因为他在创立,实例化的时候就执行了。

手写promise.all()

//promise.all()仍然返回一个新的promisefunction PromiseAll(promiseArray){  return new Promise((resolve,reject)=>{      if(!Array.isArray(promiseArray)){//判断是否是数组        return reject(new Error('传入的参数必须是参数'))      }      const res=[];      let count=0;//计时器      for(let i=0;i<promiseArray.length;i++){        //返回的数组不肯定全是promise,须要进行判断,promise.resolve会主动将参数包装成一个promise          Promise.resolve(promiseArray[i]).then(value=>{              count++;              res[i]=value;              //count的作用  如果间接push,因为promise程序不同,会导致乱序               //js数组的个性,res[6]='xxx' 则res.length=7;因而res.length并不精确              if(count===promiseArray.length){                resolve(res)              }          }).catch(e=>{            reject(e)          })      }  })}