Event Loop

JavaScript 🟡 Mid

Définition

Mécanisme central qui gère l'exécution asynchrone en JS. Il surveille la call stack et, quand elle est vide, depile les callbacks des queues (microtask d'abord, puis macrotask).

Analogie

Un serveur de restaurant qui sert les plats quand le client a fini de manger : il attend que la table soit libre avant d'apporter le suivant.

Exemple de code

console.log('1');
setTimeout(() => console.log('2'), 0);
Promise.resolve().then(() => console.log('3'));
console.log('4');
// 1, 4, 3, 2

Cas d'usage

Comprendre l'ordre d'exécution du code asynchrone et debugger les problèmes de timing.

Anti-pattern

Croire que setTimeout(fn, 0) s'exécute immédiatement après le code synchrone (les microtasks passent avant).
#core#interview#performance#fondamental

En entretien

  1. Explique-moi l'event loop en JS.

    C'est le mécanisme central qui gère l'exécution asynchrone : il surveille la call stack et, quand elle est vide, dépile les callbacks des queues, microtasks d'abord puis macrotasks. Il permet de comprendre l'ordre d'exécution du code asynchrone et de debugger les problèmes de timing.

  2. Piège classique : que se passe-t-il avec setTimeout(fn, 0) ?

    On croit souvent qu'il s'exécute immédiatement après le code synchrone, mais les microtasks comme les promesses passent toujours avant les macrotasks comme setTimeout. Donc un .then() planifié avant s'exécute avant le setTimeout(fn, 0).

Fiche mise à jour le 2026-09-27

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