我想构造一个Observable,每当另一个Observable x
滴答时,它总是发出Observable t
的最近且可能重复的(!)值。我无法使用x.sample(t)
,因为如果x
的后续刻度之间没有变化,则不会发出t
的重复值。
答案 0 :(得分:2)
这是我的解决方案。
public <T, F> Observable<T> answer(Observable<T> values, Observable<F> trigger) {
return Observable.combineLatest(values, trigger, Pair::of)
.distinctUntilChanged(p -> p.getRight())
.map(Pair::getLeft);
}
Pair
是一个left
和right
值的简单java bean。