Я понимаю, что должен отказаться от подписки на определенные Observable (например, Observable, имеющие бесконечное значение), когда Компоненты уничтожаются, чтобы предотвратить утечку памяти. Мне не нужно делать это для конечных наблюдаемых, поскольку они будут завершены автоматически unsubscribe
.
Но если я создам бесконечное Observable
в своем компоненте (например, FormGroup.valueChanges
или QueryList.changes
), этот будет уничтожен вместе с компонентом, который его содержит, поэтому я думаю, что они не будет утечки памяти, даже если я не отписываюсь от нее.
Вот простой пример:
@Component({})
export class DummyComponent {
form: FormGroup;
constructor(private fb: FormBuilder) {
this.form = this.fb.group({
firstName: [''],
lastName: ['']
});
this.form.valueChanges.subscribe(
x => console.log(x)
);
}
}
Здесь я не unsubscribe
от this.form.valueChanges
; когда мой компонент будет уничтожен, будет уничтожен и this.form.valueChanges
.
Будет ли в этом случае утечка памяти?