RxJava将多个单个结果与给定对象组合

时间:2020-05-03 14:05:25

标签: android kotlin rx-java

我有一个场景,可以修改thisObject中的每个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()
}

0 个答案:

没有答案