javascript / expert
Snippet
Orchestrierung von Timeouts mit AbortSignal.any()
AbortSignal.any ermöglicht das Kombinieren mehrerer Abort-Signale zu einem einzigen. Dies ist in Node.js für komplexe asynchrone Orchestrierungen essenziell, um beispielsweise eine Anfrage abzubrechen, wenn entweder ein Timeout abläuft, der Benutzer die Aktion abbricht oder ein übergeordneter Prozess beendet wird.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
const userAbort = new AbortController();const timeoutAbort = AbortSignal.timeout(5000);const combinedSignal = AbortSignal.any([userAbort.signal,timeoutAbort]);try {const response = await fetch(url, { signal: combinedSignal });} catch (err) {if (err.name === 'AbortError') console.log('Operation cancelled');}
nodejs
Erklärung
1
AbortSignal.any([...])
Erzeugt ein neues Signal, das abbricht, sobald eines der bereitgestellten Signale abbricht.
2
AbortSignal.timeout(5000)
Ein eingebautes Utility-Signal, das nach einer angegebenen Verzögerung ausgelöst wird.