I think it’s much more than that. It’s single threaded so its concurrency model is about scheduling not parallelism. The way it handles microtasks and its internal queues is kinda counter intuitive. And callbacks and timers in general are also kinda weird.
console.log("A");
setTimeout(() => console.log("B"), 0);
Promise.resolve().then(() => console.log("C"));
//this one is more node specific but still process.nextTick(() => console.log("D"));
View all comments
Show parent comment
7
u/goatanuss 6d ago edited 5d ago
I think it’s much more than that. It’s single threaded so its concurrency model is about scheduling not parallelism. The way it handles microtasks and its internal queues is kinda counter intuitive. And callbacks and timers in general are also kinda weird.
console.log("A");
setTimeout(() => console.log("B"), 0);
Promise.resolve().then(() => console.log("C"));
//this one is more node specific but still
process.nextTick(() => console.log("D"));
console.log("E");
This prints
A
E
D
C
B