我希望重复观察能够发出物品直到某些条件成真。然后它调用onComplete并结束发光。
我认为这样的事情会奏效,但我错了:
return Observable.interval(5, TimeUnit.SECONDS)
.flatMap(tick -> {
if (condition) {
return Observable.empty();
}
doSomething();
return Observable.just(null);
});
答案 0 :(得分:3)
您可以使用takeUntil
:
return Observable.interval(5, SECONDS)
.takeUntil(conditionObs)
.subscribe(t -> dosomething());
请注意conditionObs
(这是另一个可观察的)必须在条件变为真时发出一些东西。
您可以在此处查看文档:{{3}}