今天听一个同事答辩,问到async await 的异常捕获 问题,竟然答不上来,我给他写了个 demo 来演示:
直接在 async 修饰的函数中,是可以直接使用 try / catch 的
const test = flag => new Promise((resolve, reject) => {
if (flag) {
return resolve(flag)
} else {
return reject()
}
});
const doTest = async (flag) => {
try {
const res = await test(flag);
console.log('=== success ===', res);
} catch {
console.log('=== catch error ===');
}
}
doTest(true)
// === success === true
doTest(false)
// === catch error ===