PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Какие плюсы и минусы fetch?

DOM и браузер

У `fetch` есть плюсы (встроен, промисный, простой) и минусы (4xx/5xx не ошибка, нет интерсепторов/таймаутов, ручной парсинг).

Плюсы

  • Встроен в браузер — без зависимостей и лишнего размера бандла.
  • Промисный API — работает с async/await.
  • Гибкий — потоковые ответы (streams), контроль над запросом.
  • Стандарт — доступен и в современном Node.js.
  • Отмена — через AbortController.
const res = await fetch('/api/users');
const data = await res.json();

Минусы

  • 4xx/5xx не отклоняют промис — нужно вручную проверять res.ok:
if (!res.ok) throw new Error(res.status);
  • Ручной парсинг — res.json() отдельным шагом.
  • Нет интерсепторов — общую логику (токен, обработка ошибок) пишут вручную.
  • Нет встроенного таймаута — только через AbortController.
  • Нет автосериализации — тело сериализуют вручную (JSON.stringify), заголовки задают сами.
  • Прогресс загрузки — не из коробки.

fetch против axios

Axios решает многие минусы (интерсепторы, автопарсинг, статусы как ошибки, таймауты), но это внешняя зависимость.

Коротко для собеседования

Плюсы fetch: встроен, промисный, гибкий, есть отмена через AbortController. Минусы: 4xx/5xx не считаются ошибкой (res.ok вручную), ручной res.json(), нет интерсепторов и таймаутов, ручная сериализация. Для сложных случаев удобнее axios ценой зависимости.

Другие вопросы раздела