RxJava

2016-12-10 15 views
1

で複数の観測を組み合わせることの私は 'n' のデータソース(例えば、REST API)を持っているとしましょう:RxJava

Observable<List<DataItem>> source1 = api.source1(); 
Observable<List<DataItem>> source2 = api.source2(); 
Observable<List<DataItem>> source3 = api.source3(); 
... 
Observable<List<DataItem>> sourcen = api.sourcen(); 

'n' は比較的小さい(〜10)

私が欲しいものすべてのソースを取得し、それらを並行して実行し、すべての観測値からすべてのDataItemを含むList<DataItem> listを受信することです。事前に

おかげ

答えて

2

のような何かを行うことができます:

List<Observable<?>> obsList = Arrays.asList(source1, source2, source3, ...); 

Observable.zip(obsList, ... 
+0

それは動作しますが、それは並列ではありません...私はこれを行うに見てきた提案のようなものを使用することです – pawelo

+0

: ' (リスト)> source1 = api.source1()。subscribeOn(Schedulers.newThread()); 'など(http://stackoverflow.com/questions/38234152/how-can-i-make-this-rxjava- zip-to-run-in-parallel) –

+0

魅力的な作品です。ありがとう! – pawelo