From 14484bacd48acad7d3f9c3c236cdd2ff3e633c88 Mon Sep 17 00:00:00 2001 From: ghiscoding Date: Thu, 5 Jan 2023 18:18:29 -0500 Subject: [PATCH] fix(rxjs): make unsubscribe more generic to avoid RxJS update issue - let's not use RxJS Subscription directly to avoid errors when upgrading RxJS, for example this error is caused by a version mismatch between Angular-Slickgrid and the demos: "Type 'import("...dist/types/internal/Subscription").Subscription[]' is not assignable to type 'import(".../dist/types/internal/Subscription").Subscription[]'." --- .../modules/angular-slickgrid/services/utilities.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/app/modules/angular-slickgrid/services/utilities.ts b/src/app/modules/angular-slickgrid/services/utilities.ts index 00a087143..979918c8f 100644 --- a/src/app/modules/angular-slickgrid/services/utilities.ts +++ b/src/app/modules/angular-slickgrid/services/utilities.ts @@ -1,18 +1,17 @@ -import { Subscription } from 'rxjs'; - /** * Unsubscribe all Observables Subscriptions * It will return an empty array if it all went well * @param subscriptions */ -export function unsubscribeAllObservables(subscriptions: Subscription[]): Subscription[] { +export function unsubscribeAllObservables(subscriptions: Array<{ unsubscribe: ()=> void; }>): Array<{ unsubscribe: ()=> void; }> { if (Array.isArray(subscriptions)) { - subscriptions.forEach((subscription: Subscription) => { - if (subscription && subscription.unsubscribe) { + let subscription = subscriptions.pop(); + while (subscription) { + if (typeof subscription.unsubscribe === 'function') { subscription.unsubscribe(); } - }); - subscriptions = []; + subscription = subscriptions.pop(); + } } return subscriptions;