@Ispanec1998

Почему fetch в ответе возвращает promise, а не объект?

Почему data у нас промис, а не объект, если метод json получает из него данные, как из объекта без ещё одного then или ожидания?
Как так получается, что мы из промиса получаем данные без then используя только json()?

Вернет Promise
fetch(`https://jsonplaceholder.typicode.com/todos/1`).then(data => data)


Вернет данные
fetch(`https://jsonplaceholder.typicode.com/todos/1`).then(data => data.json())
  • Вопрос задан
  • 163 просмотра
Пригласить эксперта
Ответы на вопрос 2
otdameskapizm
@otdameskapizm
Помог ответ? Отметь решением...
С чего вы взяли, что в первом случае data - это промис. Вы при таком запросе в data - получите обычный Response
А из него вы уже достаете все то, что вам нужно

fetch('https://jsonplaceholder.typicode.com/todos/1').then((data) => console.log(data));
/*
Response {
  size: 0,
  [Symbol(Body internals)]: {
    body: BrotliDecompress { ...
Ответ написан
Vindicar
@Vindicar
Потому что Response наверняка содержит только заголовки и статус ответа, а сам ответ ещё не скачан. blob(), text() и json() его скачивают и разбирают, а скачивание как раз и требует промис, чтобы не подвешивать браузер.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы