如何使用 RxJava 收集异步响应

How to collect async response using RxJava

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

要求:使用RxJava2实现

我一直在思考使用哪个或哪些运算符来这样做,感谢您的想法。

我的想法是:

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

最后我通过使用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()
}