Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.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 捕获多个异步错误_Javascript_Typescript_Error Handling_Async Await_Try Catch - Fatal编程技术网

Javascript 捕获多个异步错误

Javascript 捕获多个异步错误,javascript,typescript,error-handling,async-await,try-catch,Javascript,Typescript,Error Handling,Async Await,Try Catch,我正在尝试修复代码中的一个问题。我有一个抛出错误的函数,我正在尝试处理它,但由于某种原因,我的try/catch块无法捕获错误。我认为它抛出了两个错误,因为它确实进入了catch块,但是控制台仍然显示一条错误消息。我有办法解决这个问题吗?谢谢 try{ await renameItem(myID, newName); //The error is triggered by this line } catch(error) { console.log("There was

我正在尝试修复代码中的一个问题。我有一个抛出错误的函数,我正在尝试处理它,但由于某种原因,我的try/catch块无法捕获错误。我认为它抛出了两个错误,因为它确实进入了catch块,但是控制台仍然显示一条错误消息。我有办法解决这个问题吗?谢谢

try{
    await renameItem(myID, newName); //The error is triggered by this line
} catch(error) {
   console.log("There was an error");
   await renameItem(myID, oldName);
   return;
}

ETA renameItem函数将一些数据发布到另一个函数,该函数验证数据并将其放入数据库。如果数据无效,则会引发异常。

如果看不到重命名项定义,则很难诊断问题。但是,控制台中显示错误的原因是try/catch不会处理catch块中的错误。您必须在catch块中的try/catch中封装对renameItem的调用,这并不理想。我建议将您的try/catch逻辑移动到renameItem函数中,如果需要在失败时执行其他操作,则在该范围内处理错误。此外,如果此方法的目的是简单地重命名一个项,而重命名失败,则不必重置旧名称。如果持久化到数据库,尤其如此。如果数据库更新失败,则表示没有任何更改。

这还取决于renameItem函数中的代码。好的,谢谢,我会尝试将其移动到函数中,看看是否可以修复。如果需要更多帮助,请发布您的renameItem定义。