1

如何检测订阅何时被取消?

有很多方法可以取消它,我想分析取消/订阅行为。

4

1 回答 1

1

为您的收藏订阅设置句柄,例如

var subHandle = Meteor.subscribe('subscription-name')

订阅句柄有一个名为ready()的方法,它是一个反应式数据源。如果订阅已被取消,它将返回false。因为它是一个响应式数据源,您可以在响应式计算中放置一条if语句来检测订阅何时被取消。

例子:

Deps.autorun(function() {
  if (subHandle && (! subHandle.ready())) {
    // subscription has been cancelled
  }
});

但是,请确保在定义 subHandle之后运行此函数。在调用 subHandle.ready() 之前,该计算不会向反应性依赖项注册。

于 2013-04-07T22:02:21.867 回答