Hint
setTimeout fires after AT LEAST the specified delay, ordered by when they expire.
setTimeout(() => console.log('c'), 100);
setTimeout(() => console.log('a'), 0);
setTimeout(() => console.log('b'), 50);a b c
Explanation: Timers fire after their delay expires. 0ms → a, 50ms → b, 100ms → c.
Key Insight: setTimeout fires after AT LEAST the specified delay, ordered by when they expire.