Microtask Queue
JavaScript 🟡 MidDéfinition
File prioritaire qui contient les callbacks de Promises (.then/.catch/.finally), MutationObserver et queueMicrotask. Vidée entièrement avant chaque macrotask.
Analogie
Les clients VIP qui passent devant tout le monde a chaque tour de service.
Exemple de code
queueMicrotask(() => console.log('micro 1'));
setTimeout(() => console.log('macro'), 0);
queueMicrotask(() => console.log('micro 2'));
// micro 1, micro 2, macro
Cas d'usage
Exécuter du code juste après l'opération courante mais avant le prochain rendu ou timer.
Anti-pattern
Termes liés
En entretien
C'est quoi la microtask queue ?
C'est une file prioritaire qui contient les callbacks des Promises (.then/.catch/.finally), de MutationObserver et de queueMicrotask. Elle est vidée entièrement avant chaque macrotask, comme des clients VIP qui passent devant tout le monde à chaque tour de service.
Quel piège classique tu vois avec les microtasks ?
Créer des microtasks en boucle infinie, ce qui bloque complètement la macrotask queue et donc le rendu de la page. C'est l'anti-pattern principal à éviter avec des .then() ou queueMicrotask enchaînés sans fin.
Dans l'exemple avec deux queueMicrotask et un setTimeout(0), dans quel ordre ça s'affiche et pourquoi ?
micro 1, micro 2, puis macro, parce que la microtask queue est vidée en entier avant que l'event loop aille chercher le prochain élément de la macrotask queue. Ça reste vrai même si le setTimeout a un délai de 0.
Fiche mise à jour le 2026-09-27