SwiftGate DocsСайт студии ↗

JavaScript

Запросы к API

Загружаем данные с fetch и обрабатываем ошибки HTTP и сети.

Проверьте статус ответа

fetch() возвращает объект ответа даже при HTTP 404 или 500. Перед чтением JSON проверьте response.ok.

async function loadProjects(signal) {
  const response = await fetch("/api/projects", { signal });
  if (!response.ok) {
    throw new Error("HTTP " + response.status);
  }
  return response.json();
}

Покажите состояние загрузки

Интерфейсу нужны состояния загрузки, результата, пустого списка и ошибки. При ошибке оставьте понятное сообщение и возможность повторить запрос.

Отменяйте устаревшие запросы

Если пользователь быстро меняет фильтры, старый запрос может завершиться позже нового. Перед следующим запросом отмените предыдущий через AbortController и передайте signal в fetch().

const controller = new AbortController();
loadProjects(controller.signal)
  .then(renderProjects)
  .catch(error => {
    if (error.name !== "AbortError") showError(error);
  });

// Например, при уходе со страницы:
controller.abort();

Использование Fetch API на MDN ↗