2

トピックのツリーを購読しており、それを使用して HTML テーブルの値を更新しています。新しい子トピックが追加され、古い子トピックが削除されることがあります。UI の同期を維持する必要があります。不明なトピックの値が到着すると新しいトピックが検出されますが、サブスクライブされたトピックが削除されたことを検出できません。

トピックが削除されたことをどのように検出できますか?

4

1 に答える 1

2

などのトピック セレクターを使用してトピック ツリーにサブスクライブしている場合?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);
    }
});

プロパティ関数subscribeおよびunsubscribeは、トピックmyTopicTreeRootおよび任意の子孫に対して呼び出されます (例: myTopicTreeRoot/foo/bar/baz.

重要: トピックが削除されると、すべてのサブスクリプションが終了し、次に が呼び出されますunsubscribe

subscribeプロパティ関数を使用する方がよいことに注意してください。updateステートレス トピックをサブスクライブする場合、新しいトピックの存在を暗示するためにの最初の呼び出しを使用することは賢明ではありません。

于 2016-05-26T07:49:44.087 に答える