假设我有两个可观察量:
Observable<MainInfo> mainInfoObs
和
Observable<AdditionalInfo> additionalInfoObs(MainInfo mainInfo)
功能。
我想以某种方式将这些观察者组合起来接收Pair<MainInfo, AdditionalInfo>
我不能只使用zip,因为additionalInfoObs
取决于mainInfo
。
所以我想做一些像
这样的事情mainInfoObs
.map(mainInfo->new Pair(mainInfo,
getAdditionalInfo(mainInfo).toBlocking().last()
)
)
但那会阻塞并挂起。
请帮助我 - 如何按我的意愿组合可观察物?
答案 0 :(得分:0)
事实证明,flatMap有一个带有2个参数的变体,这就是我需要的。 这是我使用flatmap的解决方案:
mainInfoObs.flatMap(mainInfo->getAdditionalInfo(mainInfo), Pair::new)