@ImOk

Вопрос об асинхронности. Как получить значение из метода?

const user_balance = async () => {
	await Wallet.getBalance((err, balance) => { //запрашиваем баланс
	console.log(balance.accounts[0].balance.amount);
   	return balance.accounts[0].balance.amount; // необходимо вернуть результат или поместить в переменную
	})
	
}

console.log(user_balance());


есть такой код. nodejs
функция делает запрос на сервер, спрашивает баланс. но я не разберусь как мне дальше как либо пользоваться этими данными
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
@StockholmSyndrome
const user_balance = () => {
  return new Promise((resolve, reject) => {
    Wallet.getBalance((err, balance) => {
      if (err) {
        reject(err); 
      } else {
        const data = balance.accounts[0].balance.amount;
        resolve(data);
      }
    });
  });
}


user_balance()
  .then((data) => {
    console.log(data);
  }).catch((err) => {
    console.error(err);
  });
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@DanKud
Если Wallet.getBalance возвращает промис, то можно так:

(async () => {
    const user_balance = await Wallet.getBalance((err, balance) => {
        console.log(balance.accounts[0].balance.amount);
        return balance.accounts[0].balance.amount;
    })

    console.log(user_balance);
})();
Ответ написан
Комментировать
profesor08
@profesor08 Куратор тега JavaScript
const userBallance = async () => {
  return new Promise((resolve, reject) => {
    try {
      await Wallet.getBalance((err, balance) => {
        if (err) {
          reject(err);
        }
        else {
          resolve(balance.accounts[0].balance.amount);
        }
      });
    }
    catch(err) {
      reject(err);
    }
  });
};


console.log(await userBallance());
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы