【发布时间】:2013-11-15 11:42:35
【问题描述】:
在我的应用程序可以正常运行之前,我需要获得来自多个订阅的完整数据。在 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
});
});
但这很快就会变得一团糟。可能有某种帮助/模式可以做到这一点,我只是不知道......
注意 - 我正在使用出色的 Iron-router,并且也尝试过:
this.route('baz', {
// code ...
'before' : [
function(){
this.subscribe('foo').wait();
},
function(){
this.subscribe('bar').wait();
}
],
// more code ..
});
但这似乎并不能阻止下游代码运行,因此并不能解决我的问题...
【问题讨论】:
-
这个问题启发了我研究 Iron-router,我同意它非常出色。我对它的了解并不比通过观看 18 分钟的更新视频所了解的更多,但是您是否尝试过“waitOn”功能?
-
作者在文档中说“在订阅句柄上调用等待实际上并不会阻止任何事情。它只是将订阅句柄添加到我们正在响应等待的句柄列表中。”我实际上确实希望它阻止下游代码,直到这些订阅被清除
标签: meteor iron-router