Javascript setInterval if 语句无法正常工作

标签 javascript setinterval timing

我有一个问题:

如果我使用以下代码,if 语句将永远不会被执行:

var timer = setInterval(function(){
        // the date of new date is ofcourse a date in the future
        if (Date.now() == Date.parse(new Date(2014, 1, 13, 13, 4, 0, 0))){
            console.log('refresh done');
            clearInterval(timer);
        }
}, 1);

但是如果我将 == 更改为 >= 它将正确执行。这是因为 Date.now() 变化太快以至于在比较发生之前就发生了变化吗?

最佳答案

不能保证间隔每1毫秒运行一次,这取决于循环中发生的其他情况,JS在运行它时只会尝试运行它所需的次数(我的意思是,如果没有时间运行这个函数一秒钟,JS会在这段时间之后尝试运行它1000次)。另外,我认为强制的最小间隔超过一毫秒。

关于Javascript setInterval if 语句无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21754306/

相关文章:

javascript - React ErrorBoundary - 只是无法让它工作

JavaScript 动画的持续时间不准确

jquery getJSON函数计时问题

javascript - 元素在过渡时重叠的 setInterval 函数,

c++ - 在游戏中添加计时器

javascript - requestAnimationFrame [now] 与 performance.now() 时间差异

javascript - nodejs : API differences fs. readFile 与 http.get

javascript - setInterval 和 requestanimationframe 有什么区别?

javascript - 为什么每次滑动后页面都会向上滚动以及如何防止这种情况?

javascript - 如何跳过 setInterval 函数的第一次延迟?