RxJava Observable.Interval 结束发射
RxJava Observable.Interval end emitting
我想要有重复的可观察对象,它会在某些条件成立之前发出项目。然后它调用 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
我想要有重复的可观察对象,它会在某些条件成立之前发出项目。然后它调用 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