2016-10-13 16 views
5

Czy ktoś mógłby rzucić nieco światła na to, jak od razu zrezygnować z subskrypcji obserwowalnej rxjs? Obserwowalny jest od Angular 2 EventEmitter. Kiedy otrzymam to wydarzenie, chcę anulować subskrypcję. Problemem tutaj jest anulowanie subskrypcji w ramach bloku funkcyjnego. Mam wrażenie, że jest to złe podejście:Natychmiastowa rezygnacja z subskrypcji rxjs możliwe do zaobserwowania

this.subscription = observable.subscribe((result: any) => { 
        // do something 
        // **unsubscribe** 
       }); 

Thanks

+0

Możliwy duplikat [Jak wypisać się z EventEmitter w Angular 2?] (Http://stackoverflow.com/questions/36494509/how-to-unsubscribe-from-eventemitter-in-angular-2) – jmachnik

+0

take (1) wydaje się być lepszym rozwiązaniem w porównaniu do pierwszego() https://stackoverflow.com/questions/42345969/angular-2-using-rxjs-take1-vs-first –

Odpowiedz

13
observable.first().subscribe(....)` 

zakończy subskrypcję po pierwszym razie.

+1

To jest podejście, którego szukałem. Dzięki – user1145347

+0

Istnieją inne podobne operatory, takie jak '.take (1)' lub '.skip (5) .take (1)', aby uzyskać tylko szóste wydarzenie. –

Powiązane problemy