MediumEvent Loop & Promises💻 Output Question

Promise microtask before setTimeout macrotask

💡

Hint

Order: sync → microtasks (Promise.then) → macrotasks (setTimeout). Microtasks always run before the next macrotask.

What does this output?

console.log('start');
setTimeout(() => console.log('timeout'), 0);
Promise.resolve().then(() => console.log('promise'));
console.log('end');

Correct Output

start
end
promise
timeout

Why this output?

Explanation: Sync runs first (start, end). Then microtask queue drains (promise). Then macrotask queue (timeout).

Key Insight: Order: sync → microtasks (Promise.then) → macrotasks (setTimeout). Microtasks always run before the next macrotask.

More Event Loop & Promises Output Questions

EasySynchronous code runs before setTimeoutMediumPromise chain passes valuesHardTwo Promise chains interleave in microtask queueMediumawait suspends function — caller continues

Practice predicting output live →

66 output questions with instant feedback

💻 Try Output Quiz