【问题标题】:Detect removal of topics via Push-Diffusion通过 Push-Diffusion 检测主题的删除
【发布时间】:2016-05-25 16:01:10
【问题描述】:

我订阅了主题树,并使用它来更新 HTML 表中的值。有时会添加新的子主题并删除旧的子主题。我需要保持 UI 同步,当未知主题的值到达时会检测到新主题,但我无法发现订阅的主题何时被删除。

如何检测主题何时被删除?

【问题讨论】:

    标签: push-diffusion


    【解决方案1】:

    如果您使用topic selector 订阅主题树,例如?myTopicTreeRoot//,那么当您发出此订阅调用时,您还可以说明在取消订阅以及订阅的情况下会发生什么,例如:

    session.subscribe("?myTopicTreeRoot//").on({
        open: function(subscription) {
            console.log('Opened subscription for: ' + subscription.selector);
        },
        update : function(update, topic) {
            console.log('Update for ' + topic + ' : ' + update);
        },
        subscribe : function(details, topic) {
             //This will notify you of every new subscription to a topic in your subtree
            console.log('Subscribed to : ' + topic);
        },
        unsubscribe : function(reason, topic) {
            //This will notify you of every unsubscription from a topic in your subtree
            console.log('Unsubscribed from : ' + topic);
        }
    });
    

    属性函数 subscribeunsubscribe 被调用主题 myTopicTreeRoot 和任何后代,例如myTopicTreeRoot/foo/bar/baz

    重要提示:任何订阅都会在主题被删除时结束,而主题又会调用unsubscribe

    请注意,最好使用subscribe 属性函数。如果订阅无状态主题,则使用第一次调用 update 来暗示新主题的存在是不明智的。

    【讨论】:

    • 感谢您的详尽解释,非常有帮助!
    猜你喜欢
    • 2022-12-04
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2012-10-01
    • 2016-05-03
    • 1970-01-01
    • 2018-07-29
    • 2017-01-08
    相关资源
    最近更新 更多