我想从Observable
创建Completable
,并发出Completable的OnError
和OnComplete
事件。
事件示例:
private sealed class Result {
class Success : Result()
class Error(val errorMessage: String) : Result()
}
OnError
事件应该映射到Error
,OnComplete
到Success
我了解如果可观察到的发出错误事件,则如何发出Error
:
val completable = ...
completable.
.toObservable<Result>()
.onErrorReturn { error -> Result.Error(error.message.orEmpty()) }
但是我找不到发出OnComplete
事件的解决方案。
使用标准的RxJava运算符可以实现吗?
答案 0 :(得分:0)
使用.materialize()函数。
例如这样的例子:
Completable.complete()
.toObservable<Result>()
.materialize()
.map {
when {
it.isOnError -> 1
it.isOnComplete -> 0
else -> 2 // not present in Completable
}
}