Я привык отписываться от подписок, которые я инициализирую в своих компонентах.Рекомендуемый подход - использовать оператор takeUntil
следующим образом:
killSubscriptions: new Subject<any> = new Subject();
ngOnInit(){
observableThing().pipe(takeUntil(this.killSubscriptions)).subscribe()
}
ngOnDestroy(){
this.killSubscriptions.next();
this.killSubscriptions.complete();
}
Но на днях я реализовал пользовательский диалог со службой наложения и портала, и наткнулся на этот блоккода в середине метода в библиотеке угловых материалов .
// When the dialog backdrop is clicked, we want to close it.
if (config.hasBackdrop) {
overlayRef.backdropClick().subscribe(() => {
if (!dialogRef.disableClose) {
dialogRef.close();
}
});
}
Как очищается эта подписка?Мое единственное предположение - когда утилизируется overlayRef
, подписка очищается.Но как?
Есть ли другие случаи, когда нам не нужно обрабатывать отписку?