Diz na página sobre do Node.js :
O Node sai do loop de eventos quando não há mais callbacks para executar.
Existe uma maneira de descobrir quais retornos de chamada estão impedindo a saída do Node?
Diz na página sobre do Node.js :
O Node sai do loop de eventos quando não há mais callbacks para executar.
Existe uma maneira de descobrir quais retornos de chamada estão impedindo a saída do Node?
Respostas:
Você pode usar
process._getActiveHandles()
eprocess._getActiveRequests()
Veja esta discussão na lista de discussão node.js.
atualização: há um bom pacote para isso - https://github.com/mafintosh/why-is-node-running
fonte
"totally spacing on the name, it's like "process._getOpenHandles()" or something equally hard to remember"
. Eu estava procurando no Google tentando encontrar a chamada real e não consegui. Obrigado novamente.node_globals.js
e não encontrei. Agora estou fazendo um grep na base de código do nó, sabendo o que procurar e descobrindo que eles estão definidos em node.cc. process._getActiveHandles () ésrc/node.cc:2345: NODE_SET_METHOD(process, "_getActiveHandles", GetActiveHandles);
Hah! Excelente.Há um módulo npm wtfnode para mostrar o que mantém o aplicativo nodejs em execução quando você envia SIGINT (ctrl-c) para ele.
Ele usa interno
process._getActiveHandles()
conforme mencionado na resposta de @andrey-sidrov. A vantagem de usarwtfnode
é que ele fornece uma saída fácil de ler.fonte