function all(promises){
  return new Promise((resolve,reject)=>{
  const result = []
  let count = 0
    promises.forEach((p,index) => {
      Promise.resolve(p).then(res=>{
        result[index] = res
        count ++
        if(count === promises.length) resolve(result)
      },error =>{
          reject(error)
        }) 
    });
  })
}