编辑代码

function promiseAll(promiseArr){
    const result = []
    let count = 0
    return new Promise((resolve,reject)=>{
        promiseArr.forEach((promise, index)=>{
            const addData = (index, data)=>{
                result[index] = data
                count++
                if(count===promiseArr.length)resolve(resolve(result))
            }
            if(promise instanceof Promise){
                promise.then(data=>{
                    addData(index, data)
                },err=>{
                    reject(err)
                })
            } else {
                addData(index, promise)
            }
        })
    })
}


promiseAll([
    new Promise(resolve=>{resolve(11)}),
    new Promise(resolve=>{
        setTimeout(()=>{
            resolve(22)
        },2000)
    }),
    new Promise(resolve=>{
        setTimeout(()=>{
            resolve(33)
        },1000)
    }),
    // new Promise(resolve=>{
    //     throw new Error('666')
    // }),
]).then(data=>{
    console.log(data)
})