Angular 10:我应该在 ngOnDestroy 中取消订阅 valueChanges Observable 的表单订阅吗?

时间:2021-04-29 10:05:16

标签: angular typescript rxjs angular10

我有一个这样的表格:

this.form = this.fb.group({
  username: ["Put name"],
  address: ["Put address"]
});

我正在听用户名输入值:

this.form.controls.username.valueChanges.subscribe(val =>
 //doSomething()
);

你认为我应该添加一个 pipe(takeUntil(this.destroy$)) 以避免内存泄漏吗?

有没有办法测试当组件被销毁时我是否不取消订阅,Observable 仍然存在于内存中?

1 个答案:

答案 0 :(得分:-1)

除了销毁,你也可以这样做

public sub: Subscription;

contructor() {
  this.sub = new Subscription();
}

this.sub.add(this.form.controls.username.valueChanges.subscribe(val =>
 //doSomething()
));

ngOnDestroy() {
   this.sub.unsubscribe();
}