Javascript 抛出错误时节点js中的事件循环是否已清除?
我正在尝试执行在代码执行时抛出并出错的代码。我想知道抛出错误时异步调用是否被清除 例如:Javascript 抛出错误时节点js中的事件循环是否已清除?,javascript,node.js,error-handling,Javascript,Node.js,Error Handling,我正在尝试执行在代码执行时抛出并出错的代码。我想知道抛出错误时异步调用是否被清除 例如: try{ axios(api) // will asynchronous call continue to execute even though error is thrown? throw new Error(); }catch(e){ } axios()调用将运行axios函数中的所有语句,其中一些语句将生成后台作业。然后它抛出(并捕获)错误。然后,当后台作业完成时,它将事件和回调函数放入
try{
axios(api) // will asynchronous call continue to execute even though error is thrown?
throw new Error();
}catch(e){
}
axios()
调用将运行axios
函数中的所有语句,其中一些语句将生成后台作业。然后它抛出(并捕获)错误。然后,当后台作业完成时,它将事件和回调函数放入事件循环队列中
异常(特别是被捕获时)不会清除任何正在运行的后台作业,它对这些作业没有任何了解,而且只有在应用程序中的其他地方发生异常时,才取消后台作业将是相当混乱的操作
发生这种情况的唯一方法是未捕获异常,在这种情况下,node.js会使整个过程崩溃,停止事件循环并终止任何后台作业。您尝试过这种方法吗?这似乎很容易理解。是的,我已经尝试过了,但事件循环不能保证调用何时完成。因此不确定是的,但是如果您设置了一个实验,其中异步调用做了一些琐碎的事情,比如
console.log()
。然后运行上面的代码,你会立即得到答案。为什么它会被“清除”(不管确切的意思是什么)?事件循环和它有什么关系?@AkshayBande不,我想你误解了异步调用是什么。axios()
调用将运行axios
函数中的所有语句,其中一些语句将生成后台任务。然后它抛出(并捕获)错误。然后,当后台任务完成时,它将事件和回调函数放入事件循环队列中。