0 Tage Serie
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
javascript
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.