A call to subscribe
returns an instance of Disposable
, which has a method dispose
.
Or if you are using RxJS 5, dispose
has been renamed to unsubscribe
(thanks @EricMartinez).
And from the RxJS docs:
…when we’re no longer interested in receiving the data as it comes streaming in, we call dispose on our subscription.
Store the result of your call to subscribe
and later dispose of the subscription within ngOnDestroy
.
RxJS 5:
export class SomeComponent implements OnDestroy {
constructor(public service: Service) {
this.subscription = this.service.someEvent.subscribe((x) => {...});
}
ngOnDestroy() {
this.subscription.unsubscribe();
}
}
RxJS <5:
export class SomeComponent implements OnDestroy {
constructor(public service: Service) {
this.subscription = this.service.someEvent.subscribe((x) => {...});
}
ngOnDestroy() {
this.subscription.dispose();
}
}