如何将来自一个可观察值的值映射到具有可观察值的对上?
问题描述:
假设我有两个观测:如何将来自一个可观察值的值映射到具有可观察值的对上?
Observable<MainInfo> mainInfoObs
和
Observable<AdditionalInfo> additionalInfoObs(MainInfo mainInfo)
功能。
我想以某种方式将这些观测相结合,收到Pair<MainInfo, AdditionalInfo>
我不能只用拉链,因为additionalInfoObs
取决于mainInfo
。
所以,我要像做
mainInfoObs
.map(mainInfo->new Pair(mainInfo,
getAdditionalInfo(mainInfo).toBlocking().last()
)
)
但是,块和挂起。
请帮我 - 如何结合observables,因为我想?
答
事实证明,flatMap有一个带有2个参数的变体,这就是我所需要的。 这里是我使用flatmap的解决方案:
mainInfoObs.flatMap(mainInfo->getAdditionalInfo(mainInfo), Pair::new)