3-6 实现一个 promise.all 方法


function jmPromiseAll(list) {
    const result = [];
    let count = 0;
    return new Promise((reslove, reject) => {
        list.forEach(promise => {
            promise.then((res) => {
                result.push(res)
                count++;
                if(count >= list.length) {
                    reslove(result)
                }
            }, reject)
        })
    })
}


const p1 = new Promise((reslove, reject) => {
    setTimeout(()=> {
        reslove(1000)
    },1000)
})

const p2 = new Promise((reslove, reject) => {
    setTimeout(()=> {
        reject(2000)
    },2000)
})

jmPromiseAll([p1,p2]).then(res => {
    console.log(res)
})

相关