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