Node JS 在一系列函数调用后没有终止

Node JS not terminating after a chain of function calls

我的代码结构是这样的:

    A();

function A() {
    try {
        // something that can generate an error
        console.log('\nIn A()');
        B();
    } catch (e) {
        console.log(e);
    }
}

function B() {
    try {
        console.log('\nIn B()');
        C()
    } catch (e) {
        console.log(e);
    }
}

function C() {
    try {
        console.log('\nIn C()');
    } catch (e) {
        console.log(e)
    }
}

我观察到的是,如果生成异常,它会进入 catch 块,打印 console.log。但不会终止代码。我读到 catch 不会终止,但由于控制权没有转移到其他地方,为什么进程会挂起?我还尝试制作一个记录错误并从 catch 块调用的函数。它进入函数并再次挂起。

我不熟悉 Node JS 中的错误处理。任何帮助,将不胜感激。

您提供的代码 运行 没有错误。

   A();

function A() {
    try {
        // something that can generate an error
        console.log('\nIn A()');
        B();
    } catch (e) {
        console.log(e);
    }
}

function B() {
    try {
        console.log('\nIn B()');
        C()
    } catch (e) {
        console.log(e);
    }
}

function C() {
    try {
        console.log('\nIn C()');
    } catch (e) {
        console.log(e)
    }
}

与级联函数调用无关。这是因为用于从命令行获取用户输入的读取流未关闭。如果流保持打开状态或任何异步调用尚未完成,节点不会终止。