All files 18.promise.all.js

84.61% Statements 11/13
50% Branches 4/8
66.66% Functions 4/6
84.61% Lines 11/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25  1x 1x 1x 1x 1x 3x 3x 3x 3x 3x 1x                          
export function promiseAll(list) {
  return new Promise ((resolve, reject) => {
    Eif (Array.isArray(list)) {
      let ret = []
      let count = 0
      list.forEach((p, index) => {
        Eif (isPromise) {
          p.then((data) => {
            ret[index] = data
            count ++
            if (count === list.length) {
              resolve(ret)
            }
          }).catch(err => {
            reject(err)
          })
        } 
      })
    }
  })
}
 
function isPromise(fn) {
  return typeof fn === 'function' &&  typeof fn.then === 'function'
}