Что такое `AbortController` и `AbortSignal`?
AbortController — механизм для отмены асинхронных операций.
controller.signal— объектAbortSignal, передаётся в отменяемую операциюcontroller.abort(reason)— отменяет операцию
const controller = new AbortController();
fetch('/api/data', { signal: controller.signal })
.catch(err => {
if (err.name === 'AbortError') console.log('Запрос отменён');
});
controller.abort(); // отменяет fetch
AbortSignal.timeout(ms)— создаёт signal, который автоматически отменяется через msAbortSignal.any(signals)— отменяется при срабатывании любого из signals (ES2024)- Работает с:
fetch,addEventListener,ReadableStream,WritableStream