пример:
fetch('https://url.com/json/').then(res => res.json());
получает промис который разрешается объектом(походу тоже обернутым в промис). Вот как этот самый объект не просто вывести одномоментно, а присвоить в какую-то переменную, чтобы с ним можно было работать дальше?
let x = await fetch
Работает без обертывания. 😲 А не подскажете почему? Await же, вроде бы, только внутри ассинхронных функций работает. 🤔
В консоли браузера.
ага, там и так работает, верно
в консоли не надо потому что
А где надо?
я имел в виду обрертки не надо
;(async () => { const response = await fetch(url); const result = await response.json(); console.log(result); })()
Давно интересовал вопрос. Почему response.json() возвращает промис?
;(async () => { const response = await fetch(url); const result = await response.text(); const data = JSON.parse(result); console.log(data); })() ну вот, всё, нет .json нет проблем
А response.text?
ой, ну напишите сами со стримами, ладно? мне лень хд
https://stackoverflow.com/questions/37555031/why-does-json-return-a-promise
это всё неинтересно( асинк => асинк - вот и объяснение хд
Работает если в консоль выводить. А как теперь это дело в глобальную переменную передать?
Чтобы потом с этой информацией работать можно было.
для этого не нужна глобальная переменная
FА если на этом будет задача построена мне что в этот .then весь осставшийся код запихивать?
Все равно в области видимости промиса будет как максимум. Или я что-то недопонял?
что вы сделать хотите?
А вот если из интереса и для навыка даже... Как-то это реально вообще?
да, как и обычно с переменной
не вижу для этого потребности в глобальной переменной
А как передать в другую (внешнюю функцию) тогда?
Не видит. 🤷♂️ Можно пример?
нет, я с телефона
Сейчас заметил интересный момент - а зачем ; перед (async ? Вроде же и без него везде пишут. 🤔
https://stackoverflow.com/questions/17978883/what-is-the-purpose-of-a-semicolon-before-an-iife
Спасибо, буду знать.
Обсуждают сегодня