【js】实现promise.all方法

   function promiseAll(arr) {
       const  promises = Array.from(arr)
       let promiseList = []
       let len = promises.length
       let count = 0
       return new Promise((resolve, reject) => {
           promises.forEach((item,idx)=>{
               promises[idx].then(res=>{
                   count++
                   promiseList[idx] = res
                   if(count === len) {
                       resolve(promiseList)
                   }
               }).catch(e=>{
                   reject(e)
               })
           })
       })
   }

   let promise1 = new Promise((resolve, reject) =>{
       resolve(11)
   })
   let promise2 = new Promise((resolve, reject) =>{
       resolve(22)
   })
   promiseAll([promise1,promise2]).then(res=>{
       console.log('all',res)
   }).catch(err=>{
       console.log('allError',err)
   })

你可能感兴趣的:(笔记,javascript,前端,vue.js)