Ben bu yöntemle, basit bir onay iletişim servisi (Açısal 2) inşa:Subject.complete() tüm dinleyicilerin aboneliğini iptal ediyor mu?
confirm(body?: string, title?: string): Subject<void> {
this.confirmation = new Subject<void>();
// ... show dialog here... "are you sure?"
return this.confirmation;
}
_onYesClicked() {
// ... closing the dialog
this.confirmation.next();
this.confirmation.complete();
}
_onNoClicked() {
// ... closing the dialog
this.confirmation.complete();
}
Kullanımı: Birisi hizmetini kullanıyorsa
confirmationService.confirm().subscribe(() => alert("CONFIRMED"));
, o Konu (bir gözlemlenebilir olan) iade alır ve "abone()" yapabilir. Abonelik "evet" tıklandığında çağrılır ve bu nedenle onay verilir ...
Bunu yapmanın doğru yolu bu mu? Ve daha da önemlisi ...
this.confirmation.complete();
çağrısı abone dinleyicileri abonelikten ve bu nedenle herhangi bir kalıcı referanslar (bellek sızıntısı) önleyecektir?
Başlığı düzenledim çünkü "complete()" yöntemi, Obervable'ın arabiriminin bir parçası değil. –