Sobes.tech
Назад к вопросам
Junior — Middle
70

Какое именно значение или данные возвращает функция fetch в вашем приложении?

Ответ от нейросети

sobes.tech AI

Что хотят услышать интервьюеры:

fetch возвращает не сами данные, а объект Response, то есть ответ сервера целиком. Дальше из этого объекта отдельно читается тело ответа: обычно через response.json(), response.text() или другой метод. Важно понимать, что fetch сам по себе не извлекает полезную нагрузку, а только доставляет HTTP-ответ.

Определение:

fetch — это API для выполнения HTTP-запросов, которое возвращает Promise с объектом Response. Этот объект содержит статус ответа, заголовки, флаги успешности и методы для чтения тела ответа. Если нужен JSON с сервера, его нужно дополнительно распарсить через response.json().

Пример использования:

async function loadUser() {
  const response = await fetch('/api/user');

  if (!response.ok) {
    throw new Error(`HTTP error: ${response.status}`);
  }

  const data = await response.json();
  return data;
}

В этом примере fetch('/api/user') возвращает Response, а response.json() — уже данные, пришедшие от сервера.

Пояснение кода:

  1. fetch('/api/user') отправляет запрос и возвращает Promise.
  2. После await получается объект Response.
  3. response.ok проверяет, что статус ответа в диапазоне 200–299.
  4. response.status позволяет увидеть конкретный HTTP-статус.
  5. response.json() читает тело ответа и преобразует его в JavaScript-объект.
  6. Итогом функции становится уже полезная бизнес-данные, а не сам Response.

Ключевые моменты:

  • fetch возвращает Response, а не готовые данные.
  • Тело ответа нужно читать отдельно: json(), text(), blob() и т. д.
  • Успех HTTP-запроса не равен успеху бизнес-логики: fetch не падает на 404 или 500 автоматически.
  • Для проверки результата обычно смотрят response.ok и response.status.
  • В QA Automation важно различать транспортный ответ и содержимое ответа API.