这可能是一个愚蠢的问题,但我现在的项目一直存在,直到我搞清楚。
说我有这个功能。
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秒间隔运行价格函数?
提前致谢
答案 0 :(得分:0)
如果要运行其他异步操作,则不允许阻止主线程。
让setTimeout
像现在一样运行,当它发生时,计算ABalance/ABuy
。如果Abalance/Abuy < 10
,则不执行任何操作并等待下一个setTimeout
触发。如果没有,请完成其余的工作。