如何更好的处理async、await的异常
# 普通的处理方式
try catch
async function getData() {
try {
let ret = await request('a');
}catch(error){
// todo
}
}
1
2
3
4
5
6
7
2
3
4
5
6
7
# 封装优化
const hRequest = promise => promise.then(res => [undefined, res]).catch(err => [err,undefined])
async function getData() {
let err,result;
[err,result] = await hRequest(request('a'));
console.log(err,result);
[err,result] = await hRequest(request('b'));
console.log(err,result);
}
getData();
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
这样不会出现大量的 try catch 代码。