拥有下一个数据模型:
data class Response(
private val success: Boolean,
private val error: Error,
private val data: Data
)
如果 success == false
我想得到 Error 对象,如果 success == true
我想得到 Data 对象在我的 Observable
流中。
我尝试了以下方法:
Observable.just(Response(true, Error(), Data()))
.filter { response -> response.success }
.switchIfEmpty { } //Wanted response.error here
.subscribe { response-> } //Wanted response.data here instead of full response.
有人知道如何实现吗?
最佳答案
在这种情况下你应该使用密封类
sealed class Response {
data class Success(val data: Data) : Response()
data class Error(val error: Error) : Response()
}
并进入您的 rx observable:
... //observableChain
.subscribe { result: Response ->
when (result) {
is Success -> handleSuccess(result.data)
is Error -> handleError(result.error)
}
}
关于android - 在Android响应式(Reactive)编程中,如何在应用过滤器后拆分流对象数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47572841/