javascript / intermediate
Snippet
Asynchrone Timeouts mit AbortController verwalten
AbortController ermöglicht es, asynchrone Aufgaben wie Fetch-Anfragen oder Dateioperationen abzubrechen. Er bietet ein Signal, das an verschiedene APIs übergeben werden kann, was eine präzise Kontrolle über Lebenszyklen und Timeouts ermöglicht, um hängende Prozesse zu verhindern.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const controller = new AbortController();const signal = controller.signal;// Trigger abort after 1 secondconst timeoutId = setTimeout(() => controller.abort(), 1000);try {const response = await fetch('https://api.example.com/data', { signal });const data = await response.json();clearTimeout(timeoutId);} catch (err) {if (err.name === 'AbortError') {console.error('Request was cancelled due to timeout');}}
nodejs
Erklärung
1
const controller = new AbortController();
Initialisiert eine neue Controller-Instanz zur Verwaltung des Abbruchsignals.
2
const signal = controller.signal;
Extrahiert das Signal-Objekt, das an asynchrone Funktionen übergeben wird.
3
controller.abort()
Signalisiert den Abbruch aller mit diesem Signal verknüpften Operationen.
4
if (err.name === 'AbortError')
Identifiziert, dass der Fehler spezifisch durch das Abbruchsignal verursacht wurde.