1

本系列中的函数都经过测试可以使用,如有错漏,请留言帮助修改。

Promise.all

Promise.myAll2 = function(arr){
  let result = []
  let count = 0
  return new Promise(function(resolve,reject){
    arr.forEach((value,index)=>{
      Promise.resolve(arr[index]).then((value)=>{
        count++
        result.push(value)
        if(count === arr.length)
          return resolve(result)
      },(reason)=>{
        return reject(reason)
      })
    })
  })
}

let a = new Promise((reslove,reject)=>{
  reslove(1)
})
let b = new Promise((reslove,reject)=>{
  reslove(2)
})
let c = new Promise((reslove,reject)=>{
  reject(3)
})
Promise.myAll2([a,b,c]).then((value)=>{
  console.log(value)
},(reason)=>{
  console.log(reason)
})

Promise.race

Promise.myRace = function(arr){
  return new Promise(function(resolve,reject){
    arr.forEach((value,index)=>{
      Promise.resolve(arr[index]).then((value)=>{
        return resolve(value)
      },(reason)=>{
        return reject(reason)
      })
    })
  })
}

今天天气真好
10 声望0 粉丝