async/await 异步方法使用.catch()还是try/catch捕获异常

问题

今天在开发微信小程序的时候首次用了async/await处理异步请求。在开发过程中通过网络查找发现大部分博客对于Promise方法捕获异常都写着:
1.不使用await:

//直接使用.catch捕获
promiseFunction()
.then()
.catch(err=>{
      console.log(err)
})

2.使用await:

//使用try catch捕获
try{
	let res = await promiseFunction()
}catch(error){
	console.log(error)
}

看了大部分博客之后就产生一个疑惑:

如果想使用await但捕获异常只想用.catch()捕获行不行得通呢?

结论

经过测试,得出以下结论

await可与.catch()同时使用。try/catch 能捕获所有异常, .catch只能捕获异步方法中reject错误

也就是说,如果只想捕获 异步方法中reject错误的话,在使用await的同时使用.catch()就能捕获到。但捕获不到reject之外的异常。
如下图:

1.同时使用捕获到了reject异常:

在这里插入图片描述

2.捕获不到reject之外的异常,直接报错:
(这种情况就需要使用try/catch捕获处理了)
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值