确定空事件循环

时间:2017-06-07 22:45:35

标签: javascript node.js

有没有办法确定是否存在空事件循环?

例如,

// Example 1
setInterval(() => console.log("hi"), 1000);
// event loop is not empty


// Example 2
console.log("hi");
// event loop is now empty

1 个答案:

答案 0 :(得分:0)

根据您的评论:

<块引用>

一旦事件循环为空,我想退出进程

Node.js 帮你搞定。当事件循环为空时,节点进程将自动退出。


如果你打开这个问题是因为你的测试(使用 Jest)由于某种原因被挂起,这意味着事件循环在所有 afterEachafterAll 钩子结束时不是空的,所以如果您正在运行单个测试文件,Jest 通常会挂起。如果您正在运行多个测试文件,jest 将打印一个错误,表明 Jest 被迫(非优雅地)关闭其中一个测试文件的节点进程。

要解决这个问题,请确保不要忘记等待任何承诺、关闭所有连接并清除所有超时。