Еще в Angular 16 появился оператор takeUntilDestroy() для RxJS подписок. Он существенно облегчает процесс работы с Observable. При подписке на Observable разработчик должен иметь в виду необходимость отписок при уничтожении компонента, чтобы предотвратить утечки памяти. Существует несколько методов, и все они требуют написания лишнего кода. Например, у нас есть подписка на сервис: export class Component implements OnInit {
data;
ngOnInit(): void {
this.service.getData().subscribe(
response => this.data = response.
)
}
} И отписка от него может быть реализована через takeUntil() и subject: export class Component implements OnInit, OnDestroy {
data;
destroyed = new Subject()
ngOnInit(): void {
this.service.getData()
.pipe(
takeUntil(this.destroyed),
)
.subscribe(
response => this.data = response
)
}
ngOnDestroy(): void {
this.destroyed.next();
this.destroyed.complete();
}
} Injectable OnDestroy В An