异步异常处理--用promise包装异步方法的错误捕获的疑问
来源:4-4 全局异常处理中间件编写
GivenCui
2019-06-26
// 异步的异常处理
async function fun1() {
try {
const res = await fun2()
console.log(res)
} catch (error) {
console.log(
'*******捕捉到了一个错误*******\n',
error,
'\n******************************'
)
}
}
async function fun2() {
return await fun3()
}
async function fun3() {
return new Promise((resolve, reject) => {
setTimeout(() => {
try {
const r = Math.random()
a
if (r < 0.6) {
reject('error')
}
resolve('success')
} catch (error) {
reject(error)
}
}, 1000)
})
}
fun1()
fun3中如果不try-catch, 是捕捉不到错误的
写回答
1回答
-
牛顿的菠萝
2019-06-27
仔细看fun3中的 try catch 是多余的,因为try总是成功
012019-06-27
相似问题