NodeJS,异步异常无法捕获

时间:2018-06-28 11:33:59

标签: javascript node.js exception event-loop

我读了一篇很有启发性的blog (by PANU PITKÄMÄKI)帖子,内容说明了为什么NodeJS中无法处理异步异常。它指出,在NodeJS中,异步异常是无法解决的,因为catch块根本不存在于事件循环的堆栈中。例如:

 try {
     setImmediate(() => {
        throw new Error();
     });
 } catch (e) {
     // catch error.. doesn't work
 }

我还在《 NodeJS设计模式》一书中阅读了以下内容:

  

在异步回调中抛出异常将导致异常跳入事件循环,并且永远不会传播到下一个回调。在NodeJS中,这是不可恢复的状态,并导致应用程序关闭。

问题:

从书中我得到的印象是,事件循环具有单独的堆栈,因此具有单独的线程,这是真的吗?

0 个答案:

没有答案