function a (p: number): Promise<number> {
    return new Promise((res, rej) => {
        if (p == 2) rej(100)
        setTimeout(() => {
            res(p)
        }, 2000)
    })
}

function b (p: number): Promise<number> {
    return new Promise((res, rej) => {
        if (p == 3) rej(200)
        setTimeout(() => {
            res(p)
        }, 2000)
    })
}

// 这里的catch也可以通过map函数统一加
Promise.all([a(1).catch(err => {
        console.log("出错了1111", err)
    }), b(3).catch(err => {
        console.log("出错了2222", err)
    })])
    .then(res => {
        console.log("结果是", res)
    })
    .catch(err => {
        console.log("出错了", err)
    })

Felix
73 声望2 粉丝