javascript - 确定一个空的事件循环

标签 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

最佳答案

根据您的评论:

I want to exit a process once the event loop is empty

Node.js 让您满意。当事件循环为空时, Node 进程将自动退出。


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

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

关于javascript - 确定一个空的事件循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44423932/

相关文章:

javascript - 有人可以解释这段代码的工作原理吗?

node.js - 使用 mv 模块重命名包含缓冲区数据的文件时出错

javascript - crontab 在生产模式下永远启动 Node 应用程序

javascript - 注册后 req.user 未定义

javascript - 如何将express-session req.session.user附加到chai-http请求?

javascript - 获取javascript中对应匹配单词的前一个单词

javascript - 两个选择器之间的jquery长度

javascript - 使用 Javascript 检索 Sharepoint 列表的字段/列名称

node.js - React 部署错误 = 断言 `args[1]->IsString()'

javascript - 使用SproutCore连接到HTTPS服务