手写promise.all的要点:
- 在promise上面写,非在原型上写
- 参数为一个promise数组,返回值为一个promise对象
- 用数组记录结果
- 只要有一个reject就全部reject

Promise.all = function(list){
  let res=[];// 记录成功结果的数组
  let count=0; // 计数器:记录成功的次数
    //返回promise对象
  return new Promise((resolve,reject)=>{
    list.map((promise,index)=>{
      promise.then((x)=>{
        res[index]=x
        count++
           if(count===list.length)// count等于list长度时,表示全部成功
           resolve(res)
           },(reason)=>{
              reject(reason)
           }) 
        })
  })
}
 
                         
                                

