先看代码
- 成功的
function test(params) {
return new Promise((resolve, reject) => {
if (params.flag) {
resolve(params.info);
} else {
reject("err");
}
});
}
let data = { flag: true, info: 1 };
async function fun1(params) {
let res = await test(data);
console.log(res);
}
fun1();
- 失败的
问题:
对于await promise ,只能接收到成功resolve()的结果,对于reject()的结果是会报错的。所以如何处理捕获这种报错呢。
如接处理:
try catch ,可以用来处理同步逻辑
try(){
//逻辑
} catch(err){
//处理错误
}
function test(params) {
return new Promise((resolve, reject) => {
if (params.flag) {
resolve(params.info);
} else {
reject("err");
}
});
}
let data = { flag: false, info: 1 };
async function fun1(params) {
try{
let res = await test(data);
console.log(res);
}catch(e){
//也可以直接对err进行操作
//console.log(e) => err
throw new Error(e)
}
}
fun1();