Задать вопрос
@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())
  • Вопрос задан
  • 562 просмотра
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию
    6 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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() его скачивают и разбирают, а скачивание как раз и требует промис, чтобы не подвешивать браузер.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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