meteor.js - 多个订阅的onReady回调

时间:2013-11-04 18:43:11

标签: meteor iron-router

在我的应用程序可以正常运行之前,我需要从多个订阅中获取完整数据。在jQuery / Backbone.js上下文中,我会做这样的事情:

var sub1 = Meteor.subscribe('foo'),
sub2 = Meteor.subscribe('bar');
$.when(sub1, sub2, function(){
    // do things
});

但我认为这不是Meteor方式......(?)我可以做这样的事情

Meteor.subscribe('foo', function(){
    Meteor.subscribe('bar', function(){
        // do things
    });
});

但这很快变得混乱。这样做可能有某种辅助/模式,我只是不知道......

注意 - 我正在使用优秀的铁制路由器,并尝试过这个:

this.route('baz', {
    // code ...
    'before' : [
        function(){
            this.subscribe('foo').wait();
        },
        function(){
            this.subscribe('bar').wait();
        }
     ],
     // more code ..
 });

但这似乎并不妨碍下游代码的运行,因此无法解决我的问题......

1 个答案:

答案 0 :(得分:3)

事实证明旧的方式不起作用。这个确实如此。我在http://sa.gy

使用它作为我的回调箱
this.route('baz', {
    before: function(){
        this.subscribe('foo').wait();
        this.subscribe('bar').wait();
    }
});