Meteor.subscribe 自 v1.2 以来已得到增强。在 Meteor v1.2.0.2 文档中,其中一个回调 onError 现在已替换为 onStop
回调函数或对象
可选。可能包括 onStop 和 onReady 回调。如果有一个
错误,它作为参数传递给 onStop。如果传递了一个函数
而不是一个对象,它被解释为一个 onReady 回调。
具有该增强功能,Meteor.subscribe 与回调一起用作对象
Meteor.subscribe( 'collection', {
onStop: function( error /* optional */ ) {
// when the sub terminates for any reason,
// with an error argument if an error triggered the stop
},
onReady: function() {
// when ready
}
});
但是,onError 仍然适用于向后兼容。 请注意,一些流行的软件包,例如 SubsManager 仍然使用 onError。 话虽如此,下面的 sn-p 现在已弃用但不会破坏。
Meteor.subscribe( 'collection', {
onError: function( error ) {
// if the subscribe terminates with an error
},
onReady: function() {
// when ready
}
});
另一方面,Meteor.subscribe 可以像以前一样与回调一起用作函数
Meteor.subscribe( 'collection', function() {
// when ready
});
如我个人所见,如果Meteor.subscribe不小心被多个回调函数传递,只有最后一个作为onReady回调生效。
Meteor.subscribe( 'collection', function() {
// this doesn't execute.
}, function() {
// when ready.
});
相关的 Git 承诺列在here 以供参考。