检测Meteor中何时取消订阅

时间:2013-04-07 21:38:28

标签: meteor

如何检测订阅何时取消?

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

1 个答案:

答案 0 :(得分:1)

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

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

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

示例:

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

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