Краткие ответы:
1) Всегда
2) Да
Эта статья очень хорошо описывает, почему мы должны отписаться от всех наблюдаемыхи как сделать это эффективно в угловом формате.
Если вы подписываетесь на функцию ngOnInit
, вы должны отказаться от подписки через ngOnDestroy
.
Я обычно создаю unsubscribe
Тема, и позвоните next()
на него на ngOnDestroy
. У меня были бы все мои подписки с takeUntil(unsubscribe)
.
Вот что я имею в виду:
unsubscribe = new Subject();
(...)
subscribeTo() {
this.myService.getAll().pipe(
takeUntil(this.unsubscribe),
).subscribe(data => this.localData = data);
}
ngOnDestroy() {
this.unsubscribe.next();
this.unsubscribe.complete();
}