1

我的情况是,我需要从多个订阅中获取完整数据,然后我的应用才能正常运行。在 jQuery/Backbone.js 上下文中,我会做这样的事情:

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

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

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 ..
 });

但这似乎并不能阻止下游代码运行,因此不能解决我的问题......

4

1 回答 1

3

事实证明,旧方法行不通。这个虽然。我在http://sa.gy将它用于我的回调箱

this.route('baz', {
    before: function(){
        this.subscribe('foo').wait();
        this.subscribe('bar').wait();
    }
});
于 2013-11-04T19:09:18.543 回答