RxJava Observable.Interval结束发射

时间:2016-09-01 10:22:44

标签: rx-java observable

我希望重复观察能够发出物品直到某些条件成真。然后它调用onComplete并结束发光。

我认为这样的事情会奏效,但我错了:

return Observable.interval(5, TimeUnit.SECONDS)
  .flatMap(tick -> {
     if (condition) {
       return Observable.empty();
     }
     doSomething();
     return Observable.just(null);
   });

1 个答案:

答案 0 :(得分:3)

您可以使用takeUntil

  return Observable.interval(5, SECONDS)
                   .takeUntil(conditionObs)
                   .subscribe(t -> dosomething());

请注意conditionObs(这是另一个可观察的)必须在条件变为真时发出一些东西。

您可以在此处查看文档:{​​{3}}