In dieser Form können Sie nicht. Ihr Observable ist von einer Quelle abgeleitet, die nicht vollständig ist, so dass sie nicht selbst abgeschlossen werden kann. Was Sie tun können, ist diese Quelle mit einer vollständigen Bedingung zu erweitern. Dies würde wie funktionieren:
%Vor% Wenn Sie observable
beenden möchten, tun Sie end$.onNext("anything you want here");
. Das ist der Fall, wenn das Ende-Ereignis von Ihnen generiert wird. Wenn dies eine andere Quelle ist, die dieses Ereignis erzeugt (Tastendruck usw.), können Sie direkt ein Observable, das von dieser Quelle abgeleitet wurde, als Argument von takeUntil
verwenden.
Dokumentation:
Was für mich funktioniert hat, ist die take () Betreiber. Es wird den vollständigen Rückruf nach x Anzahl der Ereignisse auslösen. Wenn Sie also 1 übergeben, wird es nach dem ersten Ereignis abgeschlossen.
Typescript:
%Vor% Ich denke, was Sie suchen, ist die Methode dispose()
.
aus: Ссылка
Beachten Sie, dass die subscribe-Methode ein Disposable zurückgibt, so dass Sie sich von einer Sequenz abmelden und sie einfach entsorgen können. Wenn Sie die Dispose-Methode für die beobachtbare Sequenz aufrufen, hört der Beobachter auf, die Observable für Daten zu hören. Normalerweise müssen Sie nicht explizit abstoßen, es sei denn, Sie müssen sich vorzeitig abmelden, oder wenn die beobachtbare Sequenz der Quelle eine längere Lebensdauer hat als der Beobachter. Abonnements in Rx sind für Fire-and-Forget-Szenarien ohne die Verwendung eines Finalizers ausgelegt. Beachten Sie, dass das Standardverhalten der Observable-Operatoren darin besteht, die Subskription so schnell wie möglich zu entfernen (d. H. Wenn onCompleted- oder onError-Nachrichten veröffentlicht werden). Zum Beispiel wird der Code x für beide Sequenzen a und b subskribieren. Wenn a einen Fehler auslöst, wird x sofort von b abgemeldet.
Tags und Links javascript stream rxjs observable reactivex