const PromiseAll = (itetator)=>{ let results = []; let promises = Array.from(itetator); let len = promises.length; let count = 0; return new Promise((resolve,reject)=>{ for(let i in promises){ Promise.resolve(promises[i]).then(res=>{ results[i] = res; count++; if(count === len){ resolve(results) } }).catch(err=>{ reject(err) }) } }) }