可能是一个 rx newbee 问题。
如果我有两个 rx 流,它们有一些共同的部分,是否有可能提取和重用它们?
这是伪代码示例:
someManager.getInfo(id) returns a Single<SometInfo>
这个乐趣需要一个 id 并且应该只返回一个状态
fun getStatus(id: String): Single<Status> =
someManager.getInfo(id)
.flattenAsObservable { it.items }
.map { getSomeProp(it) } // from here
.toList()
.map { getStatus(it) }
.doOnSuccess { getStatusRelay(id).accept(it) } // until here it's common
这个不带 id 但已经是一个对象,应该检查状态是否正常
fun isStatusOk(info: SomeInfo): Single<Boolean> =
Observable.fromIterable(info.items)
.map { getSomeProp(it) } // from here
.toList()
.map { getStatus(it) }
.doOnSuccess { getStatusRelay(id).accept(it) } // until here it's common
.map { it == Status.OK }
先感谢您