Callback Queue
JavaScript 🟡 MidDéfinition
File d'attente (macrotask queue) ou sont places les callbacks de setTimeout, setInterval, I/O et evenements DOM. Traites après que la call stack et la microtask queue sont vides.
Analogie
La file d'attente normale a la poste : tu passes après les clients prioritaires (microtasks).
Exemple de code
setTimeout(() => console.log('macro'), 0);
Promise.resolve().then(() => console.log('micro'));
// micro, macro
Cas d'usage
Planifier des taches non-urgentes qui ne doivent pas bloquer le rendu ou les promesses en cours.
Termes liés
En entretien
C'est quoi la callback queue et qui vient s'y mettre ?
C'est la macrotask queue où atterrissent les callbacks de setTimeout, setInterval, des I/O et des événements DOM. Elle n'est traitée qu'une fois la call stack et la microtask queue complètement vides.
Quelle différence entre la callback queue et la microtask queue ?
La microtask queue est prioritaire, comme des clients VIP qui passent devant tout le monde, alors que la callback queue attend son tour comme une file d'attente normale à la poste. Un setTimeout(0) passera donc toujours après un .then() de Promise.
Dans l'exemple avec setTimeout et Promise.resolve().then(), pourquoi 'micro' s'affiche avant 'macro' ?
Parce que la Promise résolue va dans la microtask queue, qui se vide entièrement avant que l'event loop traite la callback queue où setTimeout a placé son callback. C'est l'ordre imposé par l'event loop, pas par la durée du timer.
Fiche mise à jour le 2026-09-27