
该代码运行很明显的调用频率达不到 1000/s

该代码运行很明显的调用频率达不到 1000/s
这是因为javascript的事件循环机制造成的,定时器的回调每次最小相应间隔大约在十几毫秒左右。
如果你用原生js方法
setInterval(() => console.log(++this.count), 1);
也会发现实际调用次数也会小于每秒1000次。
详细可以参考:https://www.cnblogs.com/yqx0605xi/p/9267827.html
如果你只是想显示当前的秒数并且保留三位小数,你可以直接设置个 time 变量,在 update 方法里用 dt 增加这个变量即可:
let time = 0;
update(dt){
time += dt;
this.secondLabel.string = time.toFixed(3);
}
谢谢你的回答,这十几毫秒的间隔解决不了 1 s = 1000 ms的需求,我的label显示结构就是 s:ms;您有什么好的解决方法吗
已经在上面的回答中说过了哦,用叠加 dt 的方式计算时间,数字使用 time.toFixed(3).replace('.', ':') 方法实现 s:ms
好,多谢