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

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

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