是什么阻止了我的命令终止?

时间:2013-11-20 12:27:44

标签: node.js

我正在编写一个命令行工具,用于使用Node JS安装Windows服务。运行一堆异步操作后,我的工具应该打印成功消息然后退出。但有时会打印成功消息并且不会退出。

有没有办法查看在Node的内部事件循环中排队的内容,所以我可以看到什么阻止了我的工具退出?

2 个答案:

答案 0 :(得分:4)

CLI应用程序中最典型的罪魁祸首是使进程保持活动状态的事件侦听器。不过,我显然无法在没有看到您的代码的情况下说明这与您相关。

要回答您更普遍的问题,我不相信有任何直接方法可以查看事件循环中的所有未完成任务(至少不是来自JS-land)。但是,您可以与process._getActiveHandles()process._getActiveRequests()非常接近。

我真的建议你查找他们的文档。因为你找不到任何东西。他们没有证件。他们从下划线开始。使用自负。 :)

答案 1 :(得分:1)

尝试使用一些工具来阐明工作流程 - 例如https://github.com/caolan/async#waterfallhttps://github.com/caolan/async#eachseriesarr-iterator-callback

所以,你不会丢失被调用的回调,并且可以捕获执行命令时抛出的任何错误。

我认为您还需要提供导致此错误的一些代码示例。