我有一个代码
Observable.combineLatest(leftObservable, rightObservable, Pair::new)
.switchMap(pair -> {
final Department department = pair.first;
final Person person = pair.second;
if(/*person has changed*/){
// do something
}
return repository.loadHourlyTable(department , person);
});
...
如何知道哪个观察结果发生了变化?
1 回答
这可能是一种容易出错的方式来应用RxJava .
假设我们想要释放图书管理员库,然后是法庭律师,没有办法避免一些中间状态 .
解决方案取决于您的数据是如何提供给您的 . 如果每个Observable是独立的,并且每个的一个索引对应于另一个的相同索引,则应使用
zip
而不是combineLatest
.或者,如果从Person中检索部门(反之亦然),则它是可以更改的流