自Meteor 1.0以来,我在钩子onBeforeAction上有一个无限循环。 (永远调用create_game)
onBeforeAction: function(){
if(Meteor.userId()){
Meteor.call('create_game', this.params._id, 1, function(error, result){
if (error)
console.log(error);
else{
game_sus = result;
Session.set('gamesolo_id', game_sus);
}
});
}
this.next();
},
waitOn: function() { return Meteor.subscribe('game', Session.get('gamesolo_id))}
无限循环是由于会话变量导致的,如果我删除它,我不进入循环。我不知道这是一个由于新版本或什么而导致的错误,但你知道我怎么能解决这个问题? 我尝试使用全局变量而不是会话变量,但我不赞成这种方式。
答案 0 :(得分:2)
onBeforeAction是被动的,所以如果在Meteor.call回调中设置Session变量,那么onBeforeAction将再次运行
您可以使用onRun进行此会话设置