【发布时间】:2017-07-23 07:11:39
【问题描述】:
我需要每隔 X 秒进行一次相同的网络调用,所以我使用了下面的代码
Observable.interval(X, TimeUnit.SECONDS)
.flatMap(n -> myCall())
.flatMap(response -> Observable.from(response.getList())
.doOnNext(object -> createNewObject())
.doOnCompleted(() -> myStuff())
.subscribe()
但问题是我从来没有调用过 doOnCompleted。 有没有办法每隔 X 秒继续调用我的服务,但在每次调用后都有一个 onComplete ?
【问题讨论】:
-
不可能。你为什么想要这样的东西?
-
我的服务返回给我一个对象列表,所以我想在我的对象列表上的迭代完成时更新我的数据。
-
在这种情况下,您应该使用 .doOnNext(() -> myStuff()) 而不是 .doOnCompleted(() -> myStuff())
-
我想用我的最终对象列表调用 myStuff 以避免多次执行相同的处理
-
最终名单是什么?你正在做无限的间隔。请描述你的场景要求,你想要达到什么目标?