Задать вопрос
@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())
  • Вопрос задан
  • 494 просмотра
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 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
RTFM!
Потому что Response наверняка содержит только заголовки и статус ответа, а сам ответ ещё не скачан. blob(), text() и json() его скачивают и разбирают, а скачивание как раз и требует промис, чтобы не подвешивать браузер.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы