Mam bardzo prosty timeInterval obserwowalny i chcę rozpocząć/zakończyć transmisję bez odłączania abonentów (który powinien siedzieć i czekać bez względu na obserwowalny status). Jest to możliwe, a jeśli tak, to w jaki sposób?Jak uruchomić i zatrzymać interwał obserwowalny w RXJS?
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');
});
Komentarz ogólny: większość przykładów, które widziałem, pokazuje, jak definiować obserwowalne i subskrybentów. jak mam wpływ na zachowanie istniejących obiektów?
dzięki za odpowiedź. ive dodano przycisk do pauzy/odtwarzania i zauważam, że strumień jest resetowany przy każdym wznowieniu, więc nie robi dokładnie tego, czego potrzebuję, który jest zamrożeniem/wznowieniem bez restartu. –
Czy znasz różnicę między obserwowanym ciepłem a zimnem. Zajrzyj tutaj: http://stackoverflow.com/questions/32190445/hot-and-cold-observables-are-there-hot-and-cold-operators/34669444#34669444. Jeśli Twój strumień jest resetowany, prawdopodobnie oznacza to, że używasz zimnego obserwowalnego, tj. Obserwowalnego, który jest "resetowany" za każdym razem, gdy miał nowego subskrybenta. Jedynym sposobem, aby się upewnić, jest zobaczenie kodu. W moim przykładzie dodałem '.share()', aby upewnić się, że strumień był gorący, zanim przekazałem go do operatora 'pausable'. W przeciwnym razie miałbym te same problemy, co teraz. – user3743222