capypad
0 Tage Serie
javascript / intermediate
Snippet

Sauberes Abbrechen von Async-Operationen mit AbortController

Das AbortController-Interface ermöglicht es, eine oder mehrere Web-Anfragen nach Bedarf abzubrechen. Dies ist wichtig, um das Entfernen von Komponenten in Frameworks zu handhaben oder Race Conditions zu vermeiden, wenn mehrere Anfragen nacheinander ausgelöst werden.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const controller = new AbortController();
const { signal } = controller;
 
async function fetchData() {
try {
const response = await fetch('https://api.example.com/data', { signal });
return await response.json();
} catch (err) {
if (err.name === 'AbortError') {
console.log('Fetch aborted');
}
}
}
 
fetchData();
controller.abort(); // Immediately cancels the fetch
Erklärung
1
const controller = new AbortController();
Initialisiert eine neue Controller-Instanz, um Abbruchsignale zu verwalten.
2
{ signal }
Extrahiert das AbortSignal-Objekt, das an asynchrone Operationen wie 'fetch' übergeben wird.
3
controller.abort();
Löst das Abbruchsignal aus, was dazu führt, dass verknüpfte Anfragen mit einem 'AbortError' fehlschlagen.