wie starten und beenden Sie ein Intervall beobachtbar in RXJS?
Habe ich eine sehr einfache timeInterval beobachtbare und ich möchte die start/stop-übertragung, ohne dass die Abonnenten (die sollten sitzen und zu warten, unabhängig von beobachtbaren status). Ist möglich, und wenn ja, wie?
var source = Rx.Observable
.interval(500)
.timeInterval()
.map(function (x) { return x.value + ':' + x.interval; })
.take(10);
var subscription = source.subscribe(
function (x) {
$("#result").append('Next: ' + x + ' ');
},
function (err) {
$("#result").append('Error: ' + err);
},
function () {
$("#result").append('Completed');
});
Allgemeine Anmerkung: die meisten Beispiele die ich gesehen habe zeigen, wie definieren observablen und Abonnenten. wie kann ich Einfluss auf das Verhalten der vorhandenen Objekte?
InformationsquelleAutor Laurence Fass | 2016-01-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hängt davon ab, was ist die Quelle der stop/resume-signal. Der einfachste Weg, woran ich denken kann, ist mit der
pausable
- operator, die wie die Dokumentation sagt, arbeitet besser mit heißen observablen. So in dem folgenden Beispiel-code habe ich entfernt, dietake(10)
(Ihr pausable signal kommt jetzt über diepauser
Thema), und fügte hinzushare
Ihren beobachtbaren in einen heißen.Hier ist ein komplexeren Beispiel die pause Ihre Quelle alle 10 Elemente:
Sollten Sie schon jetzt Ihre Antwort auf die zweite Frage. Kombinieren Sie die observablen, die Sie gegeben sind mit den entsprechenden RxJS Betreiber bei der Realisierung Ihrer Anwendung. Dies ist, was ich hier Tat.
Kennen Sie den Unterschied zwischen einem heißen und einem kalten zu beobachten. Schau mal hier : stackoverflow.com/questions/32190445/.... Wenn Ihr Strom setzt, es wahrscheinlich bedeutet, dass Sie mit einem kalten beobachtbar, d.h. eine observable, die 'reset' - jedes mal hatte Sie einen neuen Abonnenten. Der einzige Weg, um sicherzustellen, ist, den code sehen. In meinem Beispiel habe ich ein
.share()
um sicherzustellen, dass der stream war heiß, bevor ich es übergeben, um diepausable
Betreiber. Ansonsten hätte ich die gleichen Probleme die du jetzt hast.InformationsquelleAutor user3743222