更新订阅限制参数的高效模式

Efficient pattern for updating a subscription limit argument

我正在使用 subs-manager,但这个问题的答案可能与那个库无关。

我有一个带有单个 limit 参数的订阅。目前,当我调用 subs.subscribe 'subname', newLimit 时,添加了另一个订阅。

旧订阅还在。我不希望 Meteor 花时间维护旧的、下限订阅。我不想添加新订阅,而是想更新旧订阅的参数。做这个的最好方式是什么?

请注意,我也不想在订阅 'subname', 40 之前完全删除例如 'subname', 20,因为我不想让 Meteor 做重新发送前 20 个文档的额外工作– 我希望它只发送文档 21 - 40。

您可以查看订阅的 stop() 方法。根据the docs:

stop() [cancels] the subscription. This will typically result in the server directing the client to remove the subscription's data from the client's cache.

所以在我看来,你也许可以做到:

// globals or whatever
var previousSub, newSub;

// somewhere else
newSub = Meteor.subscribe('subname', newLimit, function () {
  if (previousSub)
    previousSub.stop();
  previousSub = newSub;
});