Adloun

JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 10 · Exercice de TD

Trois fiches à la fois

Dialoguer avec un serveur : fetch · niveau 2

Énoncé

Charger en parallèle les fiches de trois ISBN, dont un inexistant, chaque requête prenant 500 ms (paramètre delai). Afficher le titre de chaque livre trouvé et le message d'erreur des autres. Combien de temps dure le tout ? Pourquoi Promise.all ne conviendrait-il pas ?

Corrigé


const isbns = ["9782956300014", "9780000000000", "9782956300069"];
const bilans = await Promise.allSettled(
  isbns.map((isbn) => obtenirJson(`http://localhost:8000/api/livres/${isbn}?delai=500`)),
);
bilans.forEach((b, i) => {
  console.log(isbns[i], b.status === "fulfilled" ? b.value.titre : `— ${b.reason.message}`);
});

9782956300014 Programmation Java
9780000000000 — Aucun livre d’ISBN 9780000000000.
9782956300069 L’Étranger
durée : 500 ms

Les trois requêtes partent ensemble : 500 ms en tout, et non 1,5 s. Promise.all serait rompue par le 404 et ferait perdre les deux fiches trouvées.

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 →