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
javascript
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.