Is there a native function that can be executed from Node.js code which outputs an array or an object containing the information about what's currently supposed to be in the Event Loop?
-
I'd expect the answer to be "no". Why would you want such a thing? – John Dvorak Jun 10 '15 at 13:06
2 Answers
Recently there was a request to see what is in the event loop, in io.js project. There were two names of functions surfaced, in this comment,
process._getActiveHandles()
gets you handles that are still aliveprocess._getActiveRequests()
gets you info about active libuv requests.
This the most you can collect from the event loop, I guess.
Note: Both of them are undocumented functions and you cannot rely on them in production code.

- 233,700
- 52
- 457
- 497
You're looking for a uv_loop
.
There's a UV_EXTERN void uv_walk(uv_loop_t* loop, uv_walk_cb walk_cb, void* arg);
method you can call to iterate the event loop.
Unfortunately, it's not really exposed to JavaScript - so unless you want to do this for fun (and fork node/io.js) then no.
You can wrap calls to the event loop and monitor those but that's slow and not even close - the actual loop isn't in JS land, only small parts of it - and even parts of that (like the microtask queue) are in C++.
A lot of people think of the event loop like an array - it's actually more like:
It's a lot easier to hook on process.nextTick
and the timers than on the poll part mentioned above.

- 270,886
- 87
- 504
- 504
-
-
1@MustafaAgamey we removed that bit maybe 5 years ago IIRC, this answer is 7 and should be read in its spirit of what node does and not as the current state of things – Benjamin Gruenbaum Dec 20 '22 at 21:00