实现promiseAll方法

239 阅读1分钟
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)
            })        
        }
    })
}