AbortController
Eine Web-API zum Abbrechen laufender asynchroner Operationen — vor allem fetch-Aufrufe, aber auch Event-Listener und mehr. Man erstellt einen AbortController, übergibt dessen signal an die Operation und kann jederzeit abort() aufrufen, um sie abzubrechen.
Problem: Ein gestarteter fetch-Aufruf ließ sich lange nicht abbrechen — navigierte der Nutzer weg oder tippte eine neue Suche, bevor die Antwort kam, lief die alte Anfrage trotzdem weiter und konnte das Ergebnis mit veralteten Daten überschreiben (ein "Race"). AbortController löst das: fetch(url, { signal }), und controller.abort() bricht die Anfrage ab (wirft einen AbortError). Anwendungsfälle: eine Suche abbrechen, während der Nutzer weiterschreibt, beim Navigieren oder Unmounten einer Komponente abbrechen, ein Timeout setzen (AbortSignal.timeout(5000)) — und, ein cleverer Trick, viele Event-Listener auf einen Schlag entfernen, indem man ihnen allen dasselbe Signal gibt und einmal abort() aufruft. Der Gewinn: verschwendete Arbeit, Race Conditions und Memory Leaks vermeiden. Ein zentrales Werkzeug für robusten asynchronen Code. Verwandt mit Fetch Streaming und requestIdleCallback.