promiseAll(arr) {
let result = [],
count = 0;
return new Promise((resolve, reject) => {
if(arr.length === 0) {
resolve();
}
for(let i = 0; i < arr.length; i++) {
Promise.resolve(arr[i]).then(res => {
result[i] = res;
count++;
count === arr.length && resolve(result);
}).catch(err => {
reject(err)
})
}
})
}