等待

时间:2018-03-15 22:17:29

标签: node.js asynchronous trading cryptocurrency

这可能是一个愚蠢的问题,但我现在的项目一直存在,直到我搞清楚。

说我有这个功能。

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秒间隔运行价格函数?

提前致谢

1 个答案:

答案 0 :(得分:0)

如果要运行其他异步操作,则不允许阻止主线程。

setTimeout像现在一样运行,当它发生时,计算ABalance/ABuy。如果Abalance/Abuy < 10,则不执行任何操作并等待下一个setTimeout触发。如果没有,请完成其余的工作。