Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Meteor中创建同步倒计时_Javascript_Node.js_Meteor - Fatal编程技术网

Javascript 在Meteor中创建同步倒计时

Javascript 在Meteor中创建同步倒计时,javascript,node.js,meteor,Javascript,Node.js,Meteor,我想在Meteor中同步倒计时。不幸的是,该值不是静态的。假设我在后端有暂停、倒带、添加和删除按钮 我现在的问题是如何将当前状态发送到其他连接的客户端。我尝试过这样的收藏,但该收藏至少还没有准备好。这意味着它最多每2次被执行一次 Template.frontend.helpers({ clock() { return ClockSettings.find().fetch()[0]; }, runClock: (c) => { set

我想在Meteor中同步倒计时。不幸的是,该值不是静态的。假设我在后端有暂停、倒带、添加和删除按钮

我现在的问题是如何将当前状态发送到其他连接的客户端。我尝试过这样的收藏,但该收藏至少还没有准备好。这意味着它最多每2次被执行一次

Template.frontend.helpers({
    clock() {
        return ClockSettings.find().fetch()[0];

    },
    runClock: (c) => {
        setInterval( () => {
            if(c) {
              adjustClock(c);
            }
        }, 1000);
    }
});

也许我构建的开始是错误的,但我的假设是创建一个类似超级变量的东西,它可以在所有客户机之间同步,而不必访问其他集合。还是我缺少了一种更简单的方法?

您应该尝试使用“ReactiveVar”实现

可能的实施方式如下:

let clock = new ReactiveVar()

Tracker.autorun(function(){
    clock.set(ClockSettings.findOne());
})

这将比上述解决方案的性能更好

什么是“超级变量”?如果不使用集合,如何在客户端之间同步?这正是我的想法。如果这是最佳实践或仅适用于集合,我需要弄清楚如何准备好集合并使其同步