Задать вопрос
@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())
  • Вопрос задан
  • 556 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
  • Skypro
    JavaScript-разработчик с нуля
    9 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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() его скачивают и разбирают, а скачивание как раз и требует промис, чтобы не подвешивать браузер.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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