fuck_ask
@fuck_ask
web программист

Как вывести данные переменной из async функции?

Данная функция выводит данные из Storage, парсится и выдает ид пользователя. Внутри функции если вставить alert то все выдает нормально. А как сделать вне функции получение данных?
В данном коде выдает [Object object] хотя в return стоит конкретное значение.
async function get_user_name() {
  try {
    let user_data = await AsyncStorage.getItem('user_data') || 'none';
	let parse = JSON.parse(user_data);
	return parse.user_id;
  } catch (error) {
    // Error retrieving data
    console.log(error.message);
  }
}
alert(get_user_name()); //Выдает Object object
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега JavaScript
Ткнуть в доку лучше готового к копипасте ответа
Асинхронная функция всегда возвращает промис, притом на момент, когда она его вернула результата еще нет, он будет потом, в неопределенном будущем.
Можно получить результат в колбэк метода then:
get_user_name().then(alert);
Или получить его через await из другой асинхронной функции:
(async () => {
  alert(await get_user_name());
})();
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
XPOWER Одесса
от 3 000 до 5 500 $
Artezio Москва
от 160 000 до 220 000 ₽