RxJava:如何取样但在不变的情况下重复

时间:2017-09-29 12:55:18

标签: rx-java

我想构造一个Observable,每当另一个Observable x滴答时,它总是发出Observable t的最近且可能重复的(!)值。我无法使用x.sample(t),因为如果x的后续刻度之间没有变化,则不会发出t的重复值。

1 个答案:

答案 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是一个leftright值的简单java bean。