有没有办法判断是否有一个空的事件循环?
例如,
// Example 1
setInterval(() => console.log("hi"), 1000);
// event loop is not empty
// Example 2
console.log("hi");
// event loop is now empty
最佳答案
根据您的评论:
I want to exit a process once the event loop is empty
Node.js 让您满意。当事件循环为空时, Node 进程将自动退出。
如果你打开这个问题是因为你的测试(使用 Jest)由于某种原因被挂起,这意味着事件循环在所有 afterEach
和 afterAll< 结束时都不为空
钩子(Hook),所以如果你正在运行单个测试文件,Jest 通常会挂起。如果您正在运行多个测试文件,jest 将打印一条错误,表明 Jest 被迫(不优雅地)关闭其中一个测试文件的 Node 进程。
要解决此问题,请确保您不要忘记等待任何 promise 、关闭所有连接并清除所有超时。
关于javascript - 确定一个空的事件循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44423932/