这可能是一个愚蠢的问题,但我当前的项目一直陷入困境,直到我弄清楚为止。
说我有这个功能。
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 秒间隔运行价格函数?
提前致谢
最佳答案
如果您想异步运行其他事情,则不允许阻塞主线程。
只要有你的 setTimeout
像现在一样运行,当它触发时,计算 ABalance/ABuy
。如果Abalance/Abuy < 10
,什么也不做,等待下一步 setTimeout
开火。如果没有,则执行其余操作。
关于node.js - 等待时运行其他代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49310133/