Adloun

JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 9 · Application directe du cours

Suivre une chaîne

Programmation asynchrone · niveau 2

Énoncé

Qu'affiche ce programme ? Que deviendrait l'affichage si le premier then était .then((x) => x - 1) ?


Promise.resolve(10)
  .then((x) => x + 1)
  .then((x) => {
    if (x > 10) throw new Error(`trop grand : ${x}`);
    return x;
  })
  .then((x) => console.log("A", x))
  .catch((e) => {
    console.log("B", e.message);
    return 0;
  })
  .then((x) => console.log("C", x))
  .finally(() => console.log("D"));

Corrigé

: le deuxième then lève une erreur ; le troisième (A) est sauté ; le catch affiche B et renvoie 0 ; la chaîne repart : C 0 ; enfin D.


B trop grand : 11
C 0
D

Avec x - 1, on obtient 9, pas d'erreur : A 9, puis le catch est sauté et le then suivant reçoit la valeur renvoyée par celui de A, c'est-à-dire undefined (console.log ne renvoie rien) : A 9, C undefined, D.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →