如何检测订阅何时取消?
有很多方法可以取消,我想分析取消/订阅行为。
答案 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()之前,此计算不会注册到响应依赖项。