Event Loop

JavaScript 🟡 Mid

Definition

Mecanisme central qui gere l'execution 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'execution du code asynchrone et debugger les problemes de timing.

Anti-pattern

Croire que setTimeout(fn, 0) s'execute immediatement apres le code synchrone (les microtasks passent avant).
#core#interview#performance#fondamental