Junior
Quelles méthodes connaissez-vous pour travailler avec du code asynchrone?
sobes.tech IA
Réponse de l'IA
- Fonctions de rappel (callback) : Passer une fonction en argument à une autre fonction, qui sera appelée après la fin d'une opération asynchrone. Peut conduire à un "callback hell".
- Promesses (Promises) : Objets représentant la finalisation (ou l'échec) d'une opération asynchrone et sa valeur résultante. Offrent une gestion plus structurée de l'asynchronie.
// Exemple d'utilisation d'une promesse fetch('/api/data') .then(response => response.json()) // Traitement de la réponse réussie .then(data => console.log(data)) // Traitement des données reçues .catch(error => console.error('Erreur lors de la récupération des données:', error)); // Gestion de l'erreur - Async/await : Sucre syntaxique sur les promesses, permettant d'écrire du code asynchrone dans un style plus synchrone, ce qui le rend plus lisible et plus facile à déboguer.
// Exemple d'utilisation d'async/await async function fetchData() { try { const response = await fetch('/api/data'); // Attente de la promesse if (!response.ok) { throw new Error(`Erreur HTTP! statut : ${response.status}`); } const data = await response.json(); // Attente de la promesse console.log(data); } catch (error) { console.error('Erreur lors de la récupération des données:', error); // Gestion de l'erreur } } fetchData(); - Générateurs (Generators) : Peuvent être utilisés pour travailler avec l'asynchronie en combinaison avec la bibliothèque
coou manuellement, bien queasync/awaitsoit devenu une approche plus courante.
Comparaison des approches principales :
| Méthode | Avantages | Inconvénients |
|---|---|---|
| Callbacks | Simple au début | "Callback hell", complexité dans la gestion des erreurs |
| Promesses | Meilleure lisibilité, gestion des erreurs | Peuvent devenir encombrantes dans des chaînes d'opérations |
| Async/await | Haute lisibilité, ressemble au code synchrone | Nécessite un support environnemental pour async/await |