Jer*_*emy 8 kotlin rx-java rx-java2
我正在尝试完成以下操作:将一些数据作为单个返回,然后执行完成后.由于single.andThen(),以下代码无法编译.需要按此顺序执行操作.
val single = Single.create<String> { it.onSuccess("result") }
val completable = Completable.create { println("executing cleanup") }
val together = single.andThen(completable)
together.subscribe(
{ println(it) },
{ println(it) }
)
Run Code Online (Sandbox Code Playgroud)
aka*_*okd 26
用途flatMap:
single.flatMap(v -> completable.andThen(Single.just(v)))
Run Code Online (Sandbox Code Playgroud)
假设您实际上想在Completable之后返回 Single ,这是另一种方法:
使用Java:
single.flatMap(x -> completable.toSingleDefault(x))
Run Code Online (Sandbox Code Playgroud)
使用科特林:
single.flatMap { completable.toSingleDefault(it) }
Run Code Online (Sandbox Code Playgroud)
请注意,如果您不关心结果是 Single 还是 Completable,则flatMapCompletableRxJava2 中有一个特殊的运算符可以在 Single 之后执行Completable :
single.flatMapCompletable(result -> completable);
| 归档时间: |
|
| 查看次数: |
5102 次 |
| 最近记录: |