У меня есть сценарий для изменения каждого Object
из Single<List<Object>>
, ссылающегося на this . Я хочу спросить, как установить свойства для каждого элемента с другим одинарным / наблюдаемым результатом. Я не уверен, что мой метод setProps()
правильный. Я получил ошибку, когда результат propsA / propsB пуст / null, и не уверен, как правильно его обработать.
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()
}