在 js( nodejs)的 setInterval 中(周期 1s),执行一个耗时计算( 0.1s),结果实际周期变成 1.1s,怎么办?

2015-07-27 18:55:50 +08:00
 plantain
1969 次点击
所在节点    问与答
3 条回复
bzw875
2015-07-27 19:17:26 +08:00
setTimeout setInterval不准时的,具体看javascript高级程序设计,建议你减时差来计时。
morethansean
2015-07-27 19:19:44 +08:00
自己可以写段代码丢到浏览器里测试,用 chrome 的话直接 devtool 能看 timeline 的。

不需要那么清晰直接丢 node 里也行:
setInterval(function () {var now = Date.now(); while(Date.now() - now <50 ){} console.log(Date.now())}, 100);

所以耗时的 callback 的话还是用 setTimeout 吧~
sneezry
2015-07-27 19:53:42 +08:00
requestAnimationFrame

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/208714

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX