Никак Либо возвращать промис, либо использовать callback (нежелательно)
А как мне получить значение промиса? Результат, который передаю через resolve
Использовать async/await
async функция вернет промис. Как новый промис поможет избавить от старого?
ты не сможешь получить значение раньше, чем промис зарезолвится
await разрешит промис)
Избавиться от промиса не получится, вызывающая функция тоже будет асинхронной. Сделайте так чтобы getFromStorage возвращал промис, и в вызывающей функции соответственно будет const result = await getFromStorage()
https://t.me/js_noobs_ru/447153
await можно использовать только в async функции. Она возвращает промис. Все примеры, которые я нашел, возвращают значение в консоль. Это работает. А мне нужно сделать так, чтобы это значение возвращалось из функции.
Значит придётся переделать вызывающую функцию на async, подругому никак
Всё ещё есть then
Ну тогда смысла от промиса никакого не будет почти
Мне весь код утыкать async из-за одной асинхронной функции?)
промис это просто абстракция, которая позволяет отложить выполнение кода, пока значение не будет получено ты хочешь пропустить томительное ожидание и использовать значение, как будто оно у тебя есть сразу, так не бывает
Я хочу, чтобы асинхронная функция работала синхронно
На самом деле не весь, только вверх по дереву вызовов до тех пор пока результат функции getFromStorage нужен синхронно. Там где он не является блокирующим, можно оставить .then и тогда async уже не нужен
Обсуждают сегодня