编辑代码

Promise.allSettled = promises => {
    if(Array.isArray(promises)) {
        throw Error('must Array')    
    }
    return new Promise((resolve) => {
        let count = 0, len = promises.length,data=[];
        for(let i=0;i<len;i++){
            Promise.resolve(i).then(res=> {
                data[i] = {
                    status:'fulfilled',
                    value: res
                }                                                    
            },err=> {
                data[i] = {
                    status:'rejected',
                    reason: err
                }
            })
            .finally(()=> {
                if(++count === len){
                    resolve(data)
                }
             })                         
        }
    })
}