RxJava可见.间隔结束发射



我想有重复的可观察对象发出项目,直到某些条件实现。然后调用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(另一个可观察对象)将不得不发出一些东西。

你可以在这里查看文档:http://reactivex.io/documentation/operators/takeuntil.html

最新更新