Вступить в клуб →
лёгкаявопросДанные и сеть: REST, TanStack Query, WebSocket

Сервер ответил 500, а в таблице заказов вместо ошибки пустые строки

async function loadOrders() {
  try {
    const response = await fetch('/api/orders');
    const data = await response.json();
    setOrders(data.items);
  } catch (e) {
    setError('Не удалось загрузить заказы');
  }
}

Сервер ответил 500 с телом {"error": "db timeout"}. Сообщения об ошибке пользователь не увидел, а таблица опустела. Почему?

  • fetch не бросает исключение на 4xx и 5xx — нужно проверять response.ok
  • response.json() на ответе с ошибкой возвращает пустой массив
  • catch не ловит ошибки из await внутри async-функции
  • Браузер кэширует ответ 500 и отдаёт старые данные

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела