在Meteor v1.0发布之前,我成功运行了这段代码:
onBeforeAction: function(){
if(Meteor.userId()){
Meteor.call('create_game', this.params._id, 1, function(error, result){
if (error)
console.log(error);
else{
var game_id = result;
Session.set('gamesolo_id', game_id);
}
});
}
},
waitOn: function() { return Meteor.subscribe('game', Session.get('gamesolo_id'))},
自Meteor v1.0起,onBeforeAction钩子中需要this.next()。我试过这个:
onBeforeAction: function(){
if(Meteor.userId()){
Meteor.call('create_game', this.params._id, 1, function(error, result){
if (error)
console.log(error);
else{
var game_id = result;
Session.set('gamesolo_id', game_id);
}
});
this.next();
}
},
waitOn: function() { return Meteor.subscribe('game', Session.get('gamesolo_id'))},
但事实证明,这是一个循环呼唤永远的方法。 知道怎么解决吗?
答案 0 :(得分:3)
您现在需要使用onRun
而不是onBeforeAction
(并且不需要this.next()
。)