AbortController

JavaScript 🟡 Mid

Definition

API pour annuler des operations asynchrones (fetch, event listeners, streams). Cree un signal qui peut etre passe a n'importe quelle API supportant l'annulation.

Analogie

Un bouton d'arret d'urgence : tu peux stopper une operation 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 requetes fetch, annulation lors du demontage d'un composant React, cleanup de listeners.

Anti-pattern

Ne jamais annuler les fetch dans les useEffect React, provoquant des memory leaks.

Termes lies

#core#async#navigateur