我在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();
});
});
(但这显然不是很好,因为如果反应直接来自函数的依赖性,它会随着时间的推移而改变,那就更好了)
答案 0 :(得分:0)
尝试
this.autorun(() => {
if (Session.get('yourVar') ){
Meteor.defer(() => {
functionThatUsesASessionVariable();
});
}
});
否则自动运行可能不会注册对Session变量的依赖。