javascript / intermediate
Snippet
Timeout-Handhabung mit AbortController
In Node.js ist AbortController der Standardweg, um asynchrone Operationen wie Fetch-Anfragen abzubrechen. Indem man das Signal des Controllers an den Fetch-Aufruf übergibt, kann man die Anfrage programmatisch stoppen, wenn sie zu lange dauert.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const controller = new AbortController();const timeoutId = setTimeout(() => controller.abort(), 5000);try {const response = await fetch('https://api.example.com/data', {signal: controller.signal});const data = await response.json();} catch (error) {if (error.name === 'AbortError') {console.error('Request timed out');}} finally {clearTimeout(timeoutId);}
nodejs
Erklärung
1
const controller = new AbortController();
Erstellt eine neue Instanz von AbortController, um das Abbruchsignal zu verwalten.
2
signal: controller.signal
Verknüpft die Fetch-Anfrage mit dem Controller, damit sie abgebrochen werden kann.
3
controller.abort()
Löst den Abbruch aus, was dazu führt, dass das Fetch-Promise mit einem AbortError abgelehnt wird.