2017-06-21 68 views
-1

這裏是我的目標是收集異步響應:收集來自來自第三方庫的異步任務的響應如何使用RxJava

要求:使用RxJava2爲了完成

我被困在想使用哪些運營商或運營商這樣做,想法是值得讚賞的。

我的想法是:

Flowable.fromIterable(list) 
    .anOperatorCanOnNextTheResponse() 
    .buffer() 
    .subscribe(newList) 
+1

你能告訴我們你被困住的東西嗎? – nhaarman

+0

@nhaarman我更新了我的問題。 –

+0

我想你可以在訂閱者的onNext方法中收集響應,並使用onCompleted中收集的所有方法。 – Kota1921

回答

0

最後我以PublishProcessor完成,PublishSubject也可以做的伎倆,但我跳過它們之間的區別。

val mPublishProcessor: FlowableProcessor<String> = PublishProcessor.create<String>().toSerialized() 

list.forEach { 
    doSomeAsyncTasksWithCallback(string) { 
     mPublishProcessor.onNext(string) 
    } 
} 

mPublishProcessor 
.buffer(list.size) 
.observeOn(AndroidSchedulers.mainThread()) 
.subscribe { 
    doSomethingWithTheCollectedStrings() 
} 
+0

您可能想在'subscribe'之前'subscribeOn'。否則緩衝區操作將發生在Android的主線程 – Pelocho

+0

感謝您的提示,它應該觀察緩衝區後的主線程() –