如何检查所有订阅是否准备好?

时间:2015-08-11 17:55:52

标签: meteor

我知道如何在模板级别甚至在路由级别中执行此操作。我想要的是获得一个反应性var来检查所有订阅的vars ready-ness。

我可以查看DDP._allSubscriptionsReady和Meteor.default_connection._subscriptions,但都不是被动的。

1 个答案:

答案 0 :(得分:0)

一个非常脏的解决方案,如果没有其他内容发布,请将其作为解决方法:

reactiveAllSubscriptionsReady = new ReactiveVar(false);

Meteor.setInterval(function() {
  reactiveAllSubscriptionsReady.set(DDP._allSubscriptionsReady());
}, 50);

基本上轮询非反应变量,直到它发生变化。仅适用于简单值(整数,布尔值,null等。)
不要与数组,对象或函数一起使用 不要在大规模应用中使用。
根本不要使用这样的策略是可能的。它等待发生内存泄漏。

但是,如果你真的需要这个功能并且不在乎,那就去吧。