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?
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.
Comments
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.