gpt4 book ai didi

javascript - 限制 NodeJS setImmediate

转载 作者:行者123 更新时间:2023-11-30 17:52:25 25 4
gpt4 key购买 nike

我正在尝试在我的 NodeJS 环境中创建一个每秒执行 30 次的循环(基于固定变量)。我被告知 setIntervalsetTimeout 不是像 process.nextTicksetImmediate 这样的 NodeJS 方式 可用于遵守 NodeJS 中的 I/O 队列。我试过使用以下代码 (setImmediate):

var Physics = {
lastTime: (new Date().getTime()),
upsCounter: 0,
ups: 0,

init: function() {
Physics.loop();
},

loop: function() {
var currentTime = (new Date().getTime());
Physics.upsCounter += 1;

if((currentTime - Physics.lastTime) >= 1000) {
Physics.ups = Physics.upsCounter;
Physics.upsCounter = 0;
Physics.lastTime = currentTime;

console.log('UPS: ' + Physics.getUPS());
}

setImmediate(Physics.loop);
},

getUPS: function() {
return this.ups;
}

};

我的问题是每秒更新次数 (UPS) 超过 400,000,而不是要求的 30,我想知道是否有任何方法可以将它限制在这个数字或替代循环结构。谢谢

最佳答案

I've been told that setInterval and setTimeout isn't the way to go in terms of NodeJS

当然是在你需要暂停或间隔的时候!

setImmediate/nextTickimmediate,这不是您想要的。您无法限制它们,它们在设计上尽可能快。

如果 setInterval 不够准确或漂移,则使用 self-adjusting timer .

关于javascript - 限制 NodeJS setImmediate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18717064/

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