RxJava2:不要在`repeatWhen`中重复
作者:互联网
我有一个Observable我想定期重复,但只是在一个条件下:
apiInterface.getData() // returns Observable<Data>
... // processing is happening here
.toList()
.repeatWhen(completed -> {
if (autoReload){
// Repeat every 3 seconds
return completed.delay(3, TimeUnit.SECONDS);
} else {
return ??? // What do I have to return that it does not repeat?
}
})
.subscribe(list -> callbackInterface.success(list));
我的问题是:我必须在else语句中返回什么才能不重复Observable(只执行一次链接)?
解决方法:
您必须通过响应项目的信号完成的内容对完成指示器做出反应,例如:
completed.takeWhile(v -> false);
不幸的是,empty()在那里不起作用,因为它在源甚至可以运行之前立即完成序列.
标签:rx-java2,android,java,rx-java,reactive-programming 来源: https://codeday.me/bug/20190828/1751603.html