Hint
Microtasks (Promises) always run before macrotasks (setTimeout), even with 0ms delay.
console.log('1');
setTimeout(() => console.log('2'), 0);
Promise.resolve().then(() => console.log('3'));
console.log('4');1 4 3 2
Explanation: Sync code runs first (1, 4). Then microtasks drain (Promise β 3). Then macrotask queue (setTimeout β 2).
Key Insight: Microtasks (Promises) always run before macrotasks (setTimeout), even with 0ms delay.