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
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.