Sto cercando di accumulare Observable dalle chiamate al server, per poi renderle piatte e fare un'altra chiamata al server.
private Observable poll(Observable<TaskStatus> taskObservable) {
Observable.add(taskObservable) //Pseudocode
.buffer(3 sec)
.flatMap(...)
...
}
Come si può ottenere l'accumulazione osservabile ("aggiungi")?
risposte:
1 per risposta № 1Probabilmente stai cercando il merge () operatore.
Per ulteriori informazioni sulla combinazione di osservabili, vedere questo: https://github.com/Netflix/RxJava/wiki/Combining-Observables
0 per risposta № 2
Per accumulo quindi, penso che potresti essere dopo qualcosa come il CompositeDisposable fa parte di Rx.NET.
Esempio di utilizzo di Rx.NET: http://rxwiki.wikidot.com/disposables#toc2
Documentazione per la classe Rx.NET: http://msdn.microsoft.com/en-us/library/system.reactive.disposables.compositedisposable(v=vs.103).aspx
Credo che l'equivalente Java Rx sia il CompositeSubscription classe.
Vedere qui: http://netflix.github.io/RxJava/javadoc/rx/subscriptions/CompositeSubscription.html
0 per risposta № 3
Dovresti usare il finestra operatore (Vedi maggiori informazioni Qui, cerca la versione con window(source, timespan, unit)
).
Il tuo codice dovrebbe essere qualcosa del genere:
Observable.window(3, TimeUnit.SECONDS).flatmap(...)