一定要执行多个请求,都要捕获错误,使用try catch 不够优雅

捕获错误刚开始我是这样写的

这样写倒是没问题都能捕获到每一个错误,但是这么多的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)
}

今天的分享就到这里吧,不能算是分享,小记小记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值