这可能是一个基本问题,但没有找到任何足够的答案。这就是为什么我想创造一个SO。
我有一个提交处理程序的表单。
<form class="form login" [formGroup]="loginForm" (ngSubmit)="onSubmit()" novalidate>
在提交时,我调用一个订阅一个observable的函数,该函数执行对firebase的HTTP调用(使用AngularFire2库)。
public onSubmit() : void {
const values = this.loginForm.value;
let subscription = this.loginUsernamePassword(values.email, values.password).subscribe((data) => {
this.processLogin(data);
}, (error) => {
console.log("erreur" + error);
}, () => {
console.log("one");
});
}
现在假设我多次提交表单,然后创建多个订阅。我关心的是数据清理(取消订阅),但不知道处理这个问题的最佳方法是什么,特别是因为这是一次性功能。我看到两种解决方案。
1)将订阅存储在一个订阅集合中,这些订阅会被销毁,并且会被删除&#39; ngOnDestroy&#39;何时删除组件。但我认为对于这种情况:单个HTTP调用,它有点奇怪。
2)在完成可观察性后立即取消订阅。
3)..还有其他吗?
感谢您的帮助和提示。