У меня есть задача, в ней есть строка которую я не совсем могу понять, разъясните мне пожалуйста следующее.
await (await (await fetch ('https://jsonplaceholder.typicode.com/todos/1')).json())
Я понимаю так: fetch это асинхронный запрос, await это ожидание выполнения какого-то асинхронного действия. вопрос зачем усложнять написанием 3ех await?
p.s:
я проверял так-же работает если убрать один await
await (await fetch ('https://jsonplaceholder.typicode.com/todos/1')).json()
Чтобы разобраться с одной строкой, ее нужно разбить на несколько:
вызов fetch, возвращает Promise, который разрешается при получении ответа
var response = await fetch(...)
вызов json, возвращает Promise, который разрешается, при чтении тела ответа и разбора его в json
var json = await response.json();
json - это объект, поэтому нет нужды использовать третий await
Рабочий пример
// await используется только в async функциях
(async () => {
// возвращает https://developer.mozilla.org/ru/docs/Web/API/Response
const response = await fetch('https://jsonplaceholder.typicode.com/todos/1')
// вызывает метод Response, точнее миксина Body https://developer.mozilla.org/ru/docs/Web/API/Body
const json = await response.json()
// json - это все что может быть json: объект, массив, строка, число...
console.log(json)
})()
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости