gpt4 book ai didi

JavaScript/TypeScript 每分钟循环一次

转载 作者:行者123 更新时间:2023-12-04 07:26:02 28 4
gpt4 key购买 nike

我的代码如下所示:

 async run(minutesToRun: number): Promise<void> {
await authenticate();
await this.stock.fillArray();
await subscribeToInstrument(this, this.orderBookId);
await subscribeToOrderbook(this, this.orderBookId);
await this.updateLoop(minutesToRun);
}

sleep(ms) {
return new Promise((resolve) => setTimeout(resolve, ms));
}

async updateLoop(minutesToRun: number) {
const startTime = new Date();
const timeDiff = compareTimestamps(startTime, this.currentTime);
while (timeDiff < minutesToRun) {
console.log(timeDiff);
this.currentTime = new Date();
this.timeStampArray.push(this.currentTime);
console.log(this.timeStampArray);
await this.stock.updateData();
await this.sleep(60000);
}
}
然而,在任何其他函数运行之前更新数据对我来说并不重要,更重要的是 updateData 调用恰好每分钟发生一次,因为我需要根据一致的时间间隔分析数据。现在它在 1m 100ms 到 1m 300ms 之间波动。有没有办法确保是这种情况,即使其他功能在其间运行?

最佳答案

setIntervalsetTimeout不是调度任务的最精确方法,因为它们是在主线程上执行的,主线程与其他进程共享 CPU 时间。如果您想要更高的准确性,那么您将不得不在 WebWorker 中运行您的计时器。 ,它在单独的线程中执行代码。

关于JavaScript/TypeScript 每分钟循环一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68205924/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com