As per node.js documentation on "Understanding process.nextTick()"(https://nodejs.dev/learn/understanding-process-nexttick):
Every time the event loop takes a full trip, we call it a tick.
what does full trip mean?
In the below example code, since the process.nextTick() is added inside zoo() which is called inside foo(), shouldn't the function test("called from tick inside zoo") get called before boo()?
function test(msg) {
console.log(msg);
}
function zoo() {
console.log("Hello, I am zoo");
process.nextTick(() => test("called from tick inside zoo"));
}
function foo() {
console.log("Hello, I am foo");
setTimeout(() => test("called from setTimeout foo"), 0);
zoo();
}
function boo() {
console.log("I am boo")
}
foo()
boo()
OUTPUT:
Hello, I am foo
Hello, I am zoo
I am boo
called from tick inside zoo
called from setTimeout foo
Also, in the same documentation page:
It's the way we can tell the JS engine to process a function asynchronously (after the current function), but as soon as possible, not queue it.
Does that mean that process.nextTick() basically ensures that the function passed gets priority over the queue(both message/job queue) but not in between the function calls within the call stack(as in foo() and boo() in the above example)?
If the above example does not apply the concept correctly. Please help me understand process.nextTick() with a simple example.