AbortController
JavaScript 🟡 MidDéfinition
API pour annuler des opérations asynchrones (fetch, event listeners, streams). Créé un signal qui peut être passe a n'importe quelle API supportant l'annulation.
Analogie
Un bouton d'arrêt d'urgence : tu peux stopper une opération en cours a tout moment.
Exemple de code
const controller = new AbortController();
fetch('/api/data', { signal: controller.signal })
.catch(err => {
if (err.name === 'AbortError') console.log('Annule');
});
// Annuler apres 5s
setTimeout(() => controller.abort(), 5000);
Cas d'usage
Timeout de requêtes fetch, annulation lors du démontage d'un composant React, cleanup de listeners.
Anti-pattern
Ne jamais annuler les fetch dans les useEffect React, provoquant des memory leaks.