我有一个场景,可以修改this的Object
中的每个Single<List<Object>>
。我想问的是如何设置具有其他“单项/可观察”结果的每个项目的属性。我不确定我的方法setProps()
是否正确。当propsA / propsB的结果为空/空时,我不确定并不确定如何正确处理它。
override fun getObjects(): Single<List<Object>> {
return db.objectDao().getObjectByUid(authPref.getUid())
.flattenAsObservable { items -> items }
.flatMap { setProps(it) }
.toList()
}
private fun setProps(obj: Object): Observable<Object> {
val propsA = db.propsADao().getProps(obj.id) // Single<List<A>>
val propsB = db.probsBDao().getProps(obj.id) // Single<B>
val result = propsA.flatMap { a ->
propsB.flatMap {
obj.propsA = a
obj.propsB = it
Single.just(obj)
}
}
return result.toObservable()
}