js async await函数中如何多次捕获到错误

466 阅读1分钟

需求:async await函数中如何多次捕获到错误

解决方法:catch捕获到错误后,继续throw error 抛出错误即可

async function test() {
    console.log('test start');
    await new Promise((resolve, reject) => {
        setTimeout(() => reject('has Error'), 2000);
    });
}

async function trigger() {
    try {
        await test();
    } catch (error) {
        console.log('error1', error);
        throw error; // 继续抛出错误 那么 after 函数内就可以继续捕获到 error信息
    }
}

async function after() {
    try {
        await trigger();
    } catch (error) {
        console.log('error2', error);
    }
}

after();

// test start
// error1 has Error
// error2 has Error