Day 32

Microtasks & Macrotasks

12 min
JavaScript 100 Days

Task Queue do types ki hoti hain — Microtask Queue (Promises) aur Macrotask Queue (setTimeout, setInterval). Microtasks hamesha pehle chalti hain — yeh jaanna debugging ke liye zaroori hai.

Execution Order

Synchronous code → Microtasks (Promises) → Macrotasks (setTimeout) — yahi order hai.

order.js
javascript
console.log("1 sync");

setTimeout(() => console.log("4 macrotask"), 0);

Promise.resolve().then(() => console.log("2 microtask"));
Promise.resolve().then(() => console.log("3 microtask 2"));

console.log("5 sync end");

// Output: 1 sync → 5 sync end → 2 microtask → 3 microtask 2 → 4 macrotask

queueMicrotask

queueMicrotask() se apna code microtask queue mein bhejo.

microtask.js
javascript
queueMicrotask(() => {
  console.log("This runs before setTimeout!");
});

setTimeout(() => console.log("setTimeout"), 0);

// Output: microtask runs first!

🎯 Practice Challenge

Complex order predict karo: setTimeout, Promise.resolve().then, queueMicrotask, async/await — sab mix karo aur output guess karo.