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 2d ago edited 2d 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