小编fre*_*aab的帖子

Angular 2/Rxjs:我真的需要取消订阅吗?

我知道我必须在销毁组件时取消订阅某些Observable(即:具有无限值的Observable )以防止内存泄漏.对于有限的 Observables,我不需要这样做,因为它们将自动完成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)
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,我不是unsubscribe来自this.form.valueChanges; 当我的组件被销毁时,它this.form.valueChanges也会被销毁.

在这种情况下是否会出现内存泄漏?

memory-leaks rxjs angular

10
推荐指数
1
解决办法
4919
查看次数

标签 统计

angular ×1

memory-leaks ×1

rxjs ×1