Angular 2 RxJS可观察取消订阅submitForm

时间:2017-08-11 09:38:46

标签: angular rxjs observable

这可能是一个基本问题,但没有找到任何足够的答案。这就是为什么我想创造一个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)..还有其他吗?

感谢您的帮助和提示。

0 个答案:

没有答案