Javascript 如何在异步函数内的try/catch块中抛出错误?
以下是我的功能:Javascript 如何在异步函数内的try/catch块中抛出错误?,javascript,node.js,Javascript,Node.js,以下是我的功能: async function doRequest() { try { const response = await doAsyncOperation(); if (response.isError) { throw new Error(response.isError); } return 'All good'; } catch (err) { console.log(err); return 'Error h
async function doRequest() {
try {
const response = await doAsyncOperation();
if (response.isError) {
throw new Error(response.isError);
}
return 'All good';
} catch (err) {
console.log(err);
return 'Error happened';
}
}
在这里,我尝试检查响应中是否有错误,如果有,抛出一个错误(因此它应该进入catch),并处理catch中已经存在的错误,但是,此代码导致错误:
at process._tickCallback (internal/process/next_tick.js:68:7)
代码没有到达“出错”行。
我做错了什么?如何正确地执行呢?像这样:
抛出{error:response.isError'}
或抛出响应。iError
进入试捕区
在您的具体示例中:
if (response.isError) throw response.isError
这是代码的简化版本吗?对我来说,它应该可以工作。
throw
语句很好。您确定已到达,并且该错误不是来自doAsyncOperation()
?您似乎尚未发布整个错误消息。您能发布所有内容并向我们显示第68行吗?这意味着语法构造“new Error()”导致了问题。Thx,现在它工作了我想是的,我知道这是因为我最近在一个快速路由器上遇到了同样的问题。只有在承诺被拒绝的情况下才会发生捕获阻塞。就你的锻炼而言,你似乎收到了回应。在这种情况下,无法到达挡块。