Callback Queue

JavaScript 🟡 Mid

Dé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.

#core#interview#async

En entretien

  1. 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.

  2. 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.

  3. 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

← → au clavier pour passer d'une fiche à l'autre