订阅时,订阅尚未准备就绪

时间:2015-08-08 06:50:17

标签: meteor iron-router

例如

Router.route('/:username/posts', {
  waitOn: function() {
    //Meteor.subscribe(('user', this.params.username));  // A
    var user = Meteor.users.findOne({username: this.params.username}); // B
    if(user) {
      return Meteor.subscribe('posts', user._id);
    }
  }
});

如果我直接在Chrome的地址栏中输入http://localhost/userA/posts并输入,那么当代码转到B时,Meteor.users还没有准备就绪。

如何处理?

1 个答案:

答案 0 :(得分:0)

用户是否检查发布处理程序 像这样:

Meteor.publish("posts", function (username) {
    var user = Meteor.users.findOne({username: username});
    if (user) {
        return Posts.find({user: user._id});
    }
});