在我的应用程序可以正常运行之前,我需要从多个订阅中获取完整数据。在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 ..
});
但这似乎并不妨碍下游代码的运行,因此无法解决我的问题......
答案 0 :(得分:3)
事实证明旧的方式不起作用。这个确实如此。我在http://sa.gy
使用它作为我的回调箱this.route('baz', {
before: function(){
this.subscribe('foo').wait();
this.subscribe('bar').wait();
}
});