【发布时间】:2018-06-20 22:42:00
【问题描述】:
我正在开发一个离子应用程序。
我用 setInterval 创建了一个计数器。
let test = new Date().getTime();
setInterval(() => {
console.log(new Date().getTime() - test);
test = new Date().getTime();
}, 1000);
问题,console.log 给出的答案不是 1000。它是完全随机的,有时超过 3000。
你知道为什么会这样吗?
【问题讨论】:
-
无法保证浏览器计时器的准确性。它们通常非常接近。如果您的标签失去焦点,浏览器会减慢它们的速度。
-
setInterval 仅保证回调将在至少 n 毫秒后被调用。因此,如果回调队列中有很多事件,它们都必须在调用 setInterval 回调之前完成。
标签: javascript angular ionic-framework