In what order are the letters logged?
console.log("A");
setTimeout(() => console.log("B"), 0);
Promise.resolve().then(() => console.log("C"));
console.log("D");Options
- A B C D
- A D C B (Correct option)
- A D B C
- A C D B
Answer
A D C B
Why
JavaScript runs on one thread with an event loop:
- First all normal (synchronous) code runs: A, then D.
- Then the microtask queue is emptied: promise callbacks → C.
- Then the next macrotask runs: timers like setTimeout → B.
So promise callbacks always run before timers, even timers set to 0 ms.
Remember
Sync code → promise callbacks (microtasks) → timers (macrotasks).