AbortController

JavaScript 🟡 Mid

Dé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.

Termes liés

#core#async#navigateur

← → au clavier pour passer d'une fiche à l'autre