18 / 27
Как реализовать таймаут для fetch-запроса?
Есть три способа реализовать таймаут для fetch. Первый (современный): AbortSignal.timeout(ms) -- встроенный статический метод, создаёт signal, который автоматически abort'ит запрос через указанное время. Второй: ручной AbortController + setTimeout -- для случаев, когда нужно отличать таймаут от пользовательской отмены. Третий: Promise.race -- устаревший подход, который не отменяет запрос, а только игнорирует результат. Рекомендуется AbortSignal.timeout() как самый чистый вариант.