這可能是一個基本問題,但沒有找到足夠的答案。所以這就是爲什麼我想創建一個SO。Angular 2 RxJS在submitForm上可觀察取消訂閱
我有一個提交處理程序的表單。
<form class="form login" [formGroup]="loginForm" (ngSubmit)="onSubmit()" novalidate>
在提交我調用哪個預訂可觀察到的一個功能,即執行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)將訂閱存儲在訂閱集合中,當組件被移除時,該集合被銷燬'ngOnDestroy'。但是我認爲對於這種情況:單個HTTP調用,這有點奇怪。
2)oberservable完成後立即退出。
3)..其他?
感謝您的幫助和提示。在一個組件處理長期訂閱
我強烈建議您閱讀Ben Lesh [「RxJS:不要取消訂閱」](https://medium.com/@benlesh/rxjs-dont-unsubscribe-6753ed4fda87) –