Rx java RxJava可观测。间隔结束发射

Rx java RxJava可观测。间隔结束发射,rx-java,observable,Rx Java,Observable,我希望有一个重复的可观察的发射项目,直到某些条件成为现实。然后它调用onComplete并结束发射 我原以为这样做行得通,但我错了: return Observable.interval(5, TimeUnit.SECONDS) .flatMap(tick -> { if (condition) { return Observable.empty(); } doSomething(); return Observable.just(

我希望有一个重复的可观察的发射项目,直到某些条件成为现实。然后它调用onComplete并结束发射

我原以为这样做行得通,但我错了:

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

您可以使用
takeUntil

  return Observable.interval(5, SECONDS)
                   .takeUntil(conditionObs)
                   .subscribe(t -> dosomething());
请注意,当条件变为真时,
conditionObs
(这是另一个可观察到的)必须发出一些东西


您可以在此处查看文档:

您可以使用
takeUntil

  return Observable.interval(5, SECONDS)
                   .takeUntil(conditionObs)
                   .subscribe(t -> dosomething());
请注意,当条件变为真时,
conditionObs
(这是另一个可观察到的)必须发出一些东西


您可以在这里查看文档:

是的,我在提出问题后立即来到takeWhile,它正在工作。TakeWhile不需要是其他可观察的,并且适合我的需要。是的,我在我的问题之后马上来到TakeWhile,它正在工作。TakeWhile不需要是其他可见的,并且适合我的需要。