有没有办法确定是否存在空事件循环?
例如,
// Example 1
setInterval(() => console.log("hi"), 1000);
// event loop is not empty
// Example 2
console.log("hi");
// event loop is now empty
答案 0 :(得分:0)
根据您的评论:
<块引用>一旦事件循环为空,我想退出进程
Node.js 帮你搞定。当事件循环为空时,节点进程将自动退出。
如果你打开这个问题是因为你的测试(使用 Jest)由于某种原因被挂起,这意味着事件循环在所有 afterEach
和 afterAll
钩子结束时不是空的,所以如果您正在运行单个测试文件,Jest 通常会挂起。如果您正在运行多个测试文件,jest 将打印一个错误,表明 Jest 被迫(非优雅地)关闭其中一个测试文件的节点进程。
要解决这个问题,请确保不要忘记等待任何承诺、关闭所有连接并清除所有超时。