编辑代码

const promiseAll = (promises) => {
    return new Promise((resolve, reject) => {
        if (!Array.isArray(promises)) reject('Arguments must be an array');
        const promisesNum = promises.length;
        const promisesArr = new Array(promisesNum);
        let resolveCounter = 0;
        let resolveValues = [];
        for(let i = 0; i < promisesNum; i++) {
            Promise.resolve(promises[i]).then(value => {
                resolveCounter++;
                resolveValues.push(value);
                if(resolveCounter === promisesNum) {
                    return resolve(resolveValues);
                }
            }, (info) => {
                return reject(info)
            });
        }
    });
};

const a = new Promise((resolve, reject) => resolve('a'))
const b = new Promise((resolve, reject) => resolve('b'))
const c = new Promise((resolve, reject) => resolve('c'))

promiseAll([ a, b, c ]).then(values => console.log(values))