【发布时间】:2015-06-10 21:32:45
【问题描述】:
是否有可以从 Node.js 代码执行的本机函数,该函数输出一个数组或对象,其中包含有关当前应该在事件循环中的信息的信息?
【问题讨论】:
-
我希望答案是“否”。你为什么想要这样的东西?
标签: node.js
是否有可以从 Node.js 代码执行的本机函数,该函数输出一个数组或对象,其中包含有关当前应该在事件循环中的信息的信息?
【问题讨论】:
标签: node.js
最近有a request 在io.js 项目中查看事件循环中的内容。有两个函数名浮出水面,在this comment,
process._getActiveHandles() 获取仍然存在的句柄
process._getActiveRequests() 获取有关活动 libuv 请求的信息。
我猜这是你可以从事件循环中收集到的最多的东西。
注意:它们都是未记录的函数,您不能在生产代码中依赖它们。
【讨论】:
您正在寻找uv_loop。
您可以调用 UV_EXTERN void uv_walk(uv_loop_t* loop, uv_walk_cb walk_cb, void* arg); 方法来迭代事件循环。
不幸的是,它并没有真正暴露于 JavaScript - 所以除非你想这样做是为了好玩(和 fork node/io.js)然后不。
您可以包装对事件循环的调用并监视它们,但这很慢,甚至无法关闭 - 实际循环不在 JS 领域,只有一小部分 - 甚至其中的一部分(如微任务队列)是在 C++ 中。
很多人认为事件循环就像一个数组——实际上更像是:
连接process.nextTick 和计时器比连接上面提到的投票部分要容易得多。
【讨论】: