Retour à la leçonMission
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.