在不重新运行的情况下在自动运行中更新 collection (Meteor.JS)

Update collection inside autorun without rerun (Meteor.JS)

我正在寻找最佳实践,我们如何更新 collection inside tracker authorun;

例如,我想更新 collection 中的观看次数。但我想确定我的订阅已准备就绪,并且我有 object 工作;

例如在 onCreated 部分:

 var self = this;
    self.autorun(function() {
        var topicId = FlowRouter.getParam('_id');
        self.subscribe('Topic', topicId);
        if(self.subscriptionsReady()){
          //  var topic = Topic.findOne(topicId);
          //  topic.upViews();
        }
    });

这段代码将进入无限循环,因为我们注释掉的代码会发生变化 object。在这种情况下最好怎么做?非常感谢!

好的,我找到了一个很好的方法(可能不是)。 我们可以使用 nonreactive Tracker function();

更新集合
var self = this;
self.autorun(function() {
    var topicId = FlowRouter.getParam('_id');
    self.subscribe('Topic', topicId);
    if(self.subscriptionsReady()){
      Tracker.nonreactive(function(){
        var topic = Topic.findOne(topicId);
        topic.upViews();
      })
  }
});

我想就是这样。也许有人会提供更好的? 如果没有更好的offer版本,我会在一天后关闭问题