我正在尝试在我的 NodeJS 环境中创建一个循环,该循环每秒执行 30 次(基于固定变量)。有人告诉我,这setInterval
不是setTimeout
NodeJS 的方式,因为它可以遵守 NodeJS 中process.nextTick
的setImmediate
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,我想知道是否有任何方法可以将其限制为这个数字,或者替代循环结构。谢谢