这里是我的目标是收集异步响应:收集来自来自第三方库的异步任务的响应如何使用RxJava
要求:使用RxJava2为了完成
我被困在想使用哪些运营商或运营商这样做,想法是值得赞赏的。
我的想法是:
Flowable.fromIterable(list)
.anOperatorCanOnNextTheResponse()
.buffer()
.subscribe(newList)
这里是我的目标是收集异步响应:收集来自来自第三方库的异步任务的响应如何使用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()
}
您可能想在'subscribe'之前'subscribeOn'。否则缓冲区操作将发生在Android的主线程 – Pelocho
感谢您的提示,它应该观察缓冲区后的主线程() –
你能告诉我们你被困住的东西吗? – nhaarman
@nhaarman我更新了我的问题。 –
我想你可以在订阅者的onNext方法中收集响应,并使用onCompleted中收集的所有方法。 – Kota1921