繁体   English   中英

流星setinterval太快了

[英]Meteor setinterval too fast

我的应用程序中有多个倒计时器,我正在使用setInterval函数更新这些值。 遵循代码块的想法是循环所有正在进行的游戏并更新倒计时时钟。 我有1000毫秒的间隔,但它比这更快地循环。 为什么? 当我打开多个浏览器窗口以查看倒数计时器更新时,我可以注意到间隔是500毫秒。

if (Meteor.isClient) {

    Meteor.setInterval(
        function() {

            var going = Games.find({isGoing: true});
            var goingFetch = going.fetch();
            var goingCount = going.count();

            for (i = 0; i < goingCount; i++) {
                Games.update(goingFetch[i]._id, {$set: {timeLeft: goingFetch[i].timeLeft - 1}});
            }               
        }
    , 1000 );
}

有没有更好的方法来解决这个问题? 我可能同时拥有100个游戏,每个游戏都有一个到多个计时器。 定时器类型可以是倒计时或增量,所有定时器都可以停止。 间隔总是并且在所有情况下都是1000毫秒。

更新我做了更多测试,setInterval工作正常,但客户端仍然有太快的倒计时器。

你确定你的代码没有被错误执行两次吗? 例如, goingCount是否goingCount产生正确的结果? setInterval不如setTimeout准确,但它不应该在1000ms时引起问题。 我们能看到更多你的代码吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM