@rd100

Нужен ли await перед response.json() и как fetch реализует timeout для своего промиса?

Сплошь и рядом такие примеры, но почитав теорию не понимаю, зачем перед response.json() пишут await?
По факту нам же нужно дождаться только получения response, а дальше код и без эвейт должен работать.
async function exampleFetch() {
    const response = await fetch('https://reqres.in/api/users/2');
    const json = await response.json();
    console.log(json);
}
exampleFetch()

Так зачем там await?

И как в fetch реализуется задержка ожидания?
Например, если мы пишем обычный промис, то без таймаута он не сработает с задержкой.
То как устроен фетч внутри, который заставляет ждать?
  • Вопрос задан
  • 325 просмотров
Решения вопроса 2
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Немного дополню ответ molekulyarniy:
fetch возвращает промис, который резолвится с объектом Response когда получены заголовки ответа
Вы можете читать ответ потоково через Stream API или сразу целиком, через спец методы, каждый из которых возвращает промис, который зарезолвится с результатом, кода тело будет прочитано в соответствующем методу формате.
Ответ написан
Комментировать
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
Потому что этот метод возвращает Promise. Так он реализован.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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