【问题标题】:Chain Completable into Observable flow链 Completable 成 Observable 流
【发布时间】:2017-11-28 14:50:47
【问题描述】:
假设你想在你的 Observable 链中插入一个 Completable,比如对于每个发射的元素,都有一个 Completable 运行并阻塞直到它完成,你会选择什么选项? (这里Completable.complete()只是举例)
.flatMap { Completable.complete().andThen(Observable.just(it)) }
.doOnNext { Completable.complete().blockingAwait() }
还有别的吗?
【问题讨论】:
标签:
rx-java
rx-java2
rx-kotlin
rx-kotlin2
【解决方案1】:
.flatMapCompletable { Completable.complete().andThen(Observable.just(it)) } // If you don't want it to return
.flatMap { Completable.complete().andThen(Observable.just(it)) } //Can be used if you want it to return Observable
【解决方案2】:
在选项 2 中,您将失去取消可完成的功能,因为 blockingAwait() 不受可观察流管理。
如果不需要返回发射的元素,还有flatMapCompletable。
如果您需要执行可完成但还返回发出的元素,那么我会选择选项 1。