Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在异步函数内的try/catch块中抛出错误?_Javascript_Node.js - Fatal编程技术网

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,现在它工作了我想是的,我知道这是因为我最近在一个快速路由器上遇到了同样的问题。只有在承诺被拒绝的情况下才会发生捕获阻塞。就你的锻炼而言,你似乎收到了回应。在这种情况下,无法到达挡块。