Rx Java Объединение нескольких отдельных результатов с данным объектом - PullRequest
0 голосов
/ 03 мая 2020

У меня есть сценарий для изменения каждого 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()
}
...