Попробуйте вычислить 2 значения из обратного вызова (Binance Api с использованием JavaScript)

#javascript #function #api #callback #binance

Вопрос:

У меня есть 2 разных кода для получения данных: первый-получить по балансовому счету, второй-получить текущую стоимость монеты, мне нужно рассчитать количество монет, которые я могу купить с помощью баланса (Баланс*стоимость монеты = количество).

Я перепробовал много вариантов, чтобы получить значение вне функции, но безуспешно.

первый код: (получить баланс)

     binance.balance((error, balances) => {
    if ( error ) return console.error(error);
    console.info("BTT balance: ", balances.BTT.available);
    });
 

Второй код (получите номинал монеты)

     binance.prices('BTTUSDT',(error, ticker)=>{
    console.info("Hello:: ", ticker.BTTUSDT);
    });
 

Ответ №1:

Погрузитесь в ад обратного вызова:

 binance.balance((error, balances) => {
  if ( error ) return console.error(error);
  console.info("BTT balance: ", balances.BTT.available);

  binance.prices('BTTUSDT',(error, ticker)=>{
    if ( error ) return console.error(error);

    // Balance*coin
  });
});
 

Или используйте Обещания:

 const getBalance = () => new Promise((resolve, reject) => {
  binance.balance((error, balances) => {
  if(error) {
    reject(error);
    return;
  }

  resolve(balances.BTT.available);
});

const getCoins = () => new Promise((resolve, reject) => {
  binance.prices('BTTUSDT', (error, ticker) => {
  if(error) {
    reject(error);
    return;
  }

  resolve(ticker.BTTUSDT);
});


(async () => {
  const balance = await getBalance();
  const coins = await getCoins();

  console.info(balance * coins);
})();
 

Комментарии:

1. Большое вам спасибо за быстрый ответ, он мне очень помог.

2. @ygalbrami Хорошая практика-давать полезные ответы. Также, если есть ответ, который решил вашу проблему, пожалуйста, отметьте его как принятый ответ.