Les Promises (promesses) sont la solution moderne pour gérer les opérations asynchrones en JavaScript. Elles remplacent les "callback hell" (l'enfer des callbacks imbriqués) par un code plus lisible et maintenable.
L'API Fetch utilise les Promises pour récupérer des données depuis des serveurs. C'est LA méthode moderne pour faire des requêtes HTTP en JavaScript.
Dans ce cours : Concept de Promise, états (pending/fulfilled/rejected), .then(), .catch(), .finally(), l'API fetch(), et exemples avec JSONPlaceholder (une API de test gratuite).
Une Promise est un objet qui représente la complétion (ou l'échec) éventuelle d'une opération asynchrone.
3 états possibles :
.then() est appelé quand la Promise est résolue (fulfilled).
.catch() est appelé quand la Promise est rejetée (rejected).
.finally() est toujours exécuté, qu'il y ait succès ou échec :
fetch() permet de faire des requêtes HTTP. Elle retourne une Promise qui se résout avec la réponse.
💡 Important : fetch() retourne d'abord la réponse HTTP, puis on doit appeler .json() pour obtenir les données JSON.
JSON (JavaScript Object Notation) est le format standard pour échanger des données avec des APIs.
Cette Promise a 50% de chances de réussir ou d'échouer :
Utilise l'API JSONPlaceholder pour récupérer une liste d'utilisateurs fictifs :
Cette démo enchaîne plusieurs Promises pour récupérer un article ET ses commentaires :
👆 Testez ces exemples dans la console interactive !
🎯 Objectifs de ce cours :
✅ Comprendre le concept de Promise et ses 3 états
✅ Utiliser .then(), .catch() et .finally()
✅ Maîtriser fetch() pour récupérer des données d'une API
✅ Manipuler JSON avec parse() et stringify()
✅ Chaîner plusieurs Promises
📖 Points clés à retenir :
• Une Promise a 3 états : pending, fulfilled, rejected
• .then() gère le succès, .catch() gère les erreurs
• fetch() retourne toujours une Promise
• Il faut appeler .json() sur la réponse pour obtenir les données
• JSON.parse() : texte JSON → objet JS
• JSON.stringify() : objet JS → texte JSON
• On peut chaîner les .then() pour des opérations séquentielles
🏋️ Exercices pratiques :
1. Liste d'articles : Utilisez fetch() pour récupérer tous les articles de JSONPlaceholder (/posts) et affichez leurs titres
2. Recherche utilisateur : Créez un champ de recherche qui récupère un utilisateur par son ID (1-10)
3. Gestion d'erreur : Ajoutez une vérification pour afficher un message si l'utilisateur n'existe pas
4. Promise personnalisée : Créez une fonction qui simule une requête API avec une Promise qui se résout après 3 secondes
5. Chaînage avancé : Récupérez un article, puis son auteur, puis tous les articles de cet auteur (3 fetch enchaînés)
💡 Astuce pro :
JSONPlaceholder (https://jsonplaceholder.typicode.com) est une API REST gratuite parfaite pour s'entraîner. Routes principales :
• /posts : 100 articles
• /users : 10 utilisateurs
• /comments : commentaires
• /posts/1 : article ID 1
Testez-les dans votre navigateur ou avec fetch() !
