如何使用RxJava收集异步响应

时间:2017-06-21 14:09:52

标签: java rx-java kotlin rx-java2

这是我的目标:收集来自第三方库的异步任务的响应

要求:使用RxJava2按顺序完成

我一直在考虑使用哪个运营商或运营商这样做,我们很感激。

我的想法是:

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

1 个答案:

答案 0 :(得分: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()
}