如何使用 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()
}
我的目标是:收集来自第三方库的异步任务的响应
要求:使用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()
}