Retour à la leçon
Mission

Mission : prédire l'ordre exact des logs avant de lancer le debugger

Tracer précisément l'ordre d'exécution d'un mélange de code synchrone, setTimeout, Promises et await, sans exécuter le code.

Contexte

Un développeur de Technologik ne comprend pas pourquoi son log "chargement terminé" (placé dans un setTimeout(fn, 0)) apparaît toujours après "données reçues" (résultat d'une Promise déjà résolue), alors que le setTimeout est écrit avant dans le fichier. Avant de lui répondre, tu dois être capable de tracer mentalement, sans l'exécuter, l'ordre exact d'affichage du code suivant :

js
console.log("1");
setTimeout(() => console.log("2"), 0);
Promise.resolve().then(() => console.log("3"));
async function f() {
  console.log("4");
  await null;
  console.log("5");
}
f();
console.log("6");