我有什么应该是一个相对简单的问题。我设置了一个会话,然后使用存储在会话中的字符串订阅集合。但是当会话发生变化时,我需要清除订阅数据并重新开始。流星订阅不停止
我的代码如下:
let subscriptionReady;
let filteredResults = [];
let rawResults = [];
let county = Session.get('county');
let type = Session.get('type');
这是大多只是准备工作,以创建一些空的对象后填充。这一切都设置在一个点击事件。之后,我们设置这些占位符对象,我们去和那些会议订阅:
if (county && !type) {
return function() {
if (subscriptionReady) {
subscriptionReady.stop();
}
filteredResults = [];
rawResults = [];
subscriptionReady = Meteor.subscribe('resourcesearch', county, {
onReady:() => {
rawResults = resourceCollection.find({}, { sort: {score: -1} }).fetch();
rawResults.forEach((result) => {
if (result.score) {
filteredResults.push(result);
}
});
}
});
}
在第三行我跑,看看检查是否存在subscriptionReady
,那么它将有可用的stop
方法。然后我运行它。但是,它并不能阻止任何事情。
我缺少什么?
为什么你会经历所有这些麻烦,而不是用一种方法获取正确的数据? – tomsp
这实际上是一个很棒的建议。可能是因为我很长一段时间没有在流星工作过。 – thatgibbyguy
其实,你是这个评论的真正的mvp。我的回答是正确的,但你的建议更好。谢谢! – thatgibbyguy