流星延迟 - 对反应性的影响

时间:2017-03-09 17:58:42

标签: javascript asynchronous meteor

我在Meteor.defer内有autorun

this.autorun(() => {
  Meteor.defer(() => {
    functionThatUsesASessionVariable();
  });
});

当Session变量发生变化时,不会重新执行此自动运行。

删除defer,它会在Session变量发生变化时重新执行。

this.autorun(() => {
  functionThatUsesASessionVariable();
});

但我确实想要延迟行为以及反应性。有没有办法让两者兼得?

====

(现在我最好的游戏只是在Session.get('sessionVar')的开头加autorun,没有分配给任何东西,只是为了触发反应。)

this.autorun(() => {
  Session.get('sessionVar');
  Meteor.defer(() => {
    functionThatUsesASessionVariable();
  });
});

(但这显然不是很好,因为如果反应直接来自函数的依赖性,它会随着时间的推移而改变,那就更好了)

1 个答案:

答案 0 :(得分:0)

尝试

this.autorun(() => {
  if (Session.get('yourVar') ){
    Meteor.defer(() => {
      functionThatUsesASessionVariable();
    });
  }
});

否则自动运行可能不会注册对Session变量的依赖。

相关问题