比如我有以下代码:
async function check(){
let promises = _.map(rules, async(rule) => {
throw new Error('aaaaaa');
});
return promises;
}
async function doCheck(){
let result;
try{
result = await Promise.all(check());
}
catch(e){
console.log('error occurs');
}
}
上面代码执行的时候 console.log('error occurs')是捕获不到的,我有什么办法可以拿到check()方法中报出的异常呢?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
要获取async函数的返回值,调用的时候,必须要await才能获取,否则获取到的是一个Promise封装过的对象,应该改成这样:
上面那样写是对了,不过显得冗余了,因为
check函数本身(排除内部函数的代码)并没有await操作,其实不必声明为async,可以去掉check的async声明。或者改成这样,把Promise.all写在check里,我觉得这样更好。