假设你想在你的 Observable 链中插入一个 Completable,比如对于每个发射的元素,都有一个 Completable 运行并阻塞直到它完成,你会选择什么选项?(这里Completable.complete()
只是举个例子)
.flatMap { Completable.complete().andThen(Observable.just(it)) }
.doOnNext { Completable.complete().blockingAwait() }
别的东西?
假设你想在你的 Observable 链中插入一个 Completable,比如对于每个发射的元素,都有一个 Completable 运行并阻塞直到它完成,你会选择什么选项?(这里Completable.complete()
只是举个例子)
.flatMap { Completable.complete().andThen(Observable.just(it)) }
.doOnNext { Completable.complete().blockingAwait() }
别的东西?
.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 中,您将失去取消可完成的能力,因为blockingAwait()
它不受可观察流的管理。
如果您不需要返回发出的元素,还有flatMapCompletable
.
如果您需要执行可完成但还返回发出的元素,那么我会选择选项 1。