1

这可能是一个愚蠢的问题,但在我弄清楚之前,我目前的项目一直停滞不前。

说我有这个功能。

async function AtoB() {
   try{
      await ACheck();
      let quantity = (ABalance - (1 / ABuy));
      quantity = parseFloat(quantity.toFixed(4));
      exchange.createMarketBuyOrder('A/B', quantity)
      trade();
   } catch(err) {
      console.log(err);
   }
}

该函数正在等待另一个名为 ACheck() 的函数,如下所示:

async function ACheck() {
   while(ABalance/ABuy < 10) {
   }
   return true;
}

我的问题是 ABalance 和 ABuy 设置在另一个函数中,该函数使用 CCXT 获取它们的值。当 AtoB() 运行时,它会停止我设置的每 5 秒调用一次价格函数的 setTimeout。这实际上意味着函数永远不会运行,因为 ABalance 和 Abuy 的值永远不会更新。

在等待 ACheck() 时,有没有办法以相同的 5 秒间隔运行价格函数?

提前致谢

4

1 回答 1

0

如果要异步运行其他事情,则不允许阻塞主线程。

就像setTimeout现在一样运行,当它触发时,计算ABalance/ABuy. 如果Abalance/Abuy < 10,什么也不做,等待下一次setTimeout开火。如果没有,做剩下的。

于 2018-03-15T23:15:17.027 回答