gikami
@gikami
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
  • Вопрос задан
  • 920 просмотров
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Асинхронная функция всегда возвращает промис, притом на момент, когда она его вернула результата еще нет, он будет потом, в неопределенном будущем.
Можно получить результат в колбэк метода then:
get_user_name().then(alert);
Или получить его через await из другой асинхронной функции:
(async () => {
  alert(await get_user_name());
})();
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы