From f98344b5f646faae051851bfb02f4997b508c915 Mon Sep 17 00:00:00 2001 From: Victor Woeltjen Date: Wed, 24 Jun 2015 12:27:20 -0700 Subject: [PATCH] [Telemetry] Unsubscribe on composition change WTD-1329. --- platform/telemetry/src/TelemetrySubscription.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/platform/telemetry/src/TelemetrySubscription.js b/platform/telemetry/src/TelemetrySubscription.js index ff512f1e39..f8481eb085 100644 --- a/platform/telemetry/src/TelemetrySubscription.js +++ b/platform/telemetry/src/TelemetrySubscription.js @@ -154,6 +154,14 @@ define( return objects; } + function unsubscribeAll() { + return unsubscribePromise.then(function (unsubscribes) { + return $q.all(unsubscribes.map(function (unsubscribe) { + return unsubscribe(); + })); + }); + } + function initialize() { // Get a reference to relevant objects (those with telemetry // capabilities) and subscribe to their telemetry updates. @@ -176,7 +184,7 @@ define( function modelChange(model) { if (!idsMatch((model || {}).composition || [])) { // Reinitialize if composition has changed - initialize(); + unsubscribeAll().then(initialize); } } @@ -201,11 +209,7 @@ define( if (unlistenToMutation) { unlistenToMutation(); } - return unsubscribePromise.then(function (unsubscribes) { - return $q.all(unsubscribes.map(function (unsubscribe) { - return unsubscribe(); - })); - }); + return unsubscribeAll(); }, /** * Get the most recent domain value that has been observed