Angular/RxJs When should I unsubscribe from `Subscription`
Когда я должен хранитьSubscription
экземпляры и вызыватьunsubscribe()
во время жизненного цикла NgOnDestroy и когда я могу просто игнорировать их?
Сохранение всех подписок вносит много ошибок в код компонента.
HTTP Client Guide игнорировать подписки, как это:
getHeroes() {
this.heroService.getHeroes()
.subscribe(
heroes => this.heroes = heroes,
error => this.errorMessage = <any>error);
}
В то же времяМаршрут и руководство по навигации Говорит, что:
В конце концов мы перейдем куда-нибудь еще. Маршрутизатор удалит этот компонент из DOM и уничтожит его. Мы должны убраться за собой, прежде чем это произойдет. В частности, мы должны отписаться, прежде чем Angular уничтожит компонент. Невыполнение этого требования может привести к утечке памяти.
Отписываемся от нашихObservable
вngOnDestroy
метод.
private sub: any;
ngOnInit() {
this.sub = this.route.params.subscribe(params => {
let id = +params['id']; // (+) converts string 'id' to a number
this.service.getHero(id).then(hero => this.hero = hero);
});
}
ngOnDestroy() {
this.sub.unsubscribe();
}