【发布时间】:2013-03-29 06:20:05
【问题描述】:
我在 node.js 中编写了一个执行一些网络操作的模块。我写了一个使用这个模块的小脚本(下面的变量check)。它看起来像这样:
check(obj, function (err, results) {
// ...
console.log("Check completed");
});
现在有趣的事情来了。当此代码作为mocha 测试的一部分执行时,测试将按预期退出。我看到打印的日志语句并且进程退出。
当代码作为独立节点脚本执行时,会打印日志语句,但进程只是挂起。
当我尝试调试它并使用--debug-brk 启动程序并使用node-inspector 时,它会提前退出!我看到process.on 'exit' 被调用了。它在模块中的一些内部回调尚未被调用时退出。所以上面的日志语句也没有打印出来。
我现在卡住了,不知道为什么会这样。有没有人见过类似的行为?
【问题讨论】:
标签: javascript node.js asynchronous server-side node-async