如何使用RxJava收集异步响应

如何使用RxJava收集异步响应,java,rx-java,kotlin,rx-java2,Java,Rx Java,Kotlin,Rx Java2,我的目标是:收集来自第三方库的异步任务的响应 需求:使用RxJava2按顺序完成 我一直在思考使用哪个操作员或哪个操作员这样做,想法是值得赞赏的 我的想法是: Flowable.fromIterable(list) .anOperatorCanOnNextTheResponse() .buffer() .subscribe(newList) 最后,我使用PublishProcessor完成了这个任务,PublishSubject也可以完成这个任务,但我忽略了它们之间的区

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

需求:使用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()
}
val-mpPublishProcessor:FlowableProcessor=PublishProcessor.create().toSerialized()
list.forEach{
doSomeAsyncTasksWithCallback(字符串){
MPPublishProcessor.onNext(字符串)
}
}
多处理器
.buffer(list.size)
.observeOn(AndroidSchedulers.mainThread())
.订阅{
DoSomethingWithCollectedStrings()
}

你能告诉我们你在哪里被你尝试过的东西卡住了吗?@nhaarman我更新了我的问题。我想你可以在订阅服务器上用onNext方法收集回复,并使用onCompleted中收集的所有回复。你可能想在
订阅之前订阅
。否则,缓冲区操作将在Android的主线程中进行感谢提示,它应该在主线程上观察buffer()之后