Вместо добавления подписки в массив, вы можете использовать оператор takeUntil()
.
Таким образом, вы создаете Subject
, который должен выдавать значение на ngOnDestroy
и отменять подписку сразу на несколько подписок
unsubscribeSignal: Subject<void> = new Subject();
ngOnInit() {
firstSubscription = firstObservable
.pipe(
takeUntil(this.unsubscribeSignal.asObservable()),
)
.subscribe(result => {});
secondSubscription = secondObservable
.pipe(
takeUntil(this.unsubscribeSignal.asObservable()),
)
.subscribe(result => {});
thirdSubscription = thirdObservable
.pipe(
takeUntil(this.unsubscribeSignal.asObservable()),
)
.subscribe(result => {});
}
ngOnDestroy(){
this.unsubscribeSignal.next();
// Don't forget to unsubscribe from subject itself
this.unsubscribeSignal.unsubscribe();
}