87

它在Node.js 关于页面上说:

当没有更多回调要执行时,节点退出事件循环。

有没有办法找出哪些回调阻止 Node 退出?

4

3 回答 3

92

您可以使用process._getActiveHandles()process._getActiveRequests()

请参阅node.js 邮件列表中的此讨论

更新:有一个很好的包 - https://github.com/mafintosh/why-is-node-running

于 2013-07-31T02:51:19.127 回答
11

有一个 npm 模块wtfnode显示当您向它发送 SIGINT (ctrl-c) 时保持 nodejs 应用程序运行的原因。

process._getActiveHandles()如@andrey-sidrov 的回答中所述,它的内部用途。使用的好处wtfnode是它提供了易于阅读的输出。

于 2015-11-20T02:48:22.030 回答
0

如果您有兴趣了解哪些打开的连接仍处于打开状态:

当进程挂起时,您可以在 mac 和 linux 中运行:netstat -a搜索开放端口。这是一个很好的线索,在谈到为什么 Jest 被绞死时,它会不时帮助我。

于 2021-03-14T19:28:15.657 回答