Angular/RxJs когда я должен отписаться от " подписки`
когда я должен хранить Subscription экземпляры и вызывать unsubscribe() во время жизненного цикла NgOnDestroy и когда я могу просто игнорировать их?
сохранение всех подписок вносит много беспорядка в код компонента.
руководство клиента HTTP игнорировать подписки, как это:
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();
}
Comments