Retour à la leçon
Mission

Mission : sauver le module de configuration à six niveaux

Tracer l'ordre d'exécution d'un code à callbacks, corriger une erreur non vérifiée, et aplatir une pyramide de callbacks imbriqués.

Contexte

Technologik maintient un vieux module Node.js qui lit un fichier de config, interroge la base de données, puis envoie un e-mail de confirmation, avec trois callbacks imbriqués. Un développeur doit ajouter une quatrième étape (journaliser dans un fichier d'audit) mais un bug existant complique tout : dans l'étape 2, l'erreur potentielle n'est jamais vérifiée.

js
function etape1(cb) { setTimeout(() => cb(null, "config"), 100); }
function etape2(donnee, cb) { setTimeout(() => cb(new Error("DB indisponible"), null), 100); }
function etape3(donnee, cb) { setTimeout(() => cb(null, donnee + "-mail-envoye"), 100); }

etape1((err1, res1) => {
  etape2(res1, (err2, res2) => {
    etape3(res2, (err3, res3) => {
      console.log("Resultat final :", res3);
    });
  });
});

Tu dois comprendre pourquoi ce code plante silencieusement, le corriger, puis expliquer la limite structurelle de ce style.