捕获错误刚开始我是这样写的
这样写倒是没问题都能捕获到每一个错误,但是这么多的try catch 看起来不够优雅
try{
const a = await getList1();
setStateA(a?.items);
} catch(error){
Toast.success("出错了!", error)
}
try{
const b = await getList2();
setStateB(b?.items);
} catch(error){
Toast.success("出错了!", error)
}
try{
const c = await getList3();
setStateC(c?.items);
} catch(error){
Toast.success("出错了!", error)
}
...
然后我就灵机一动
try{
const a = await getList1();
const b = await getList2();
const c = await getList3();
setStateA(a?.items);
setStateB(b?.items);
setStateC(c?.items);
} catch(error){
Toast.success("出错了!", error)
}
- 可是这样写会出现一个问题,当第一个请求
a
报错, 后面的都不会执行。
再灵机一动
try {
const responses = await Promise.all([
getList1(),
getList2(),
getList3(),
])
setStateA(responses[0]);
setStateB(responses[1]);
setStateC(responses[2]);
}
catch(error) {
Toast.success("出错了!", error)
}