我想请求间隔数据服务。 我正在使用Observable.interval来实现这一点,所以在每个发射器上我想要一个服务:
Observable.interval(1, TimeUnit.MINUTES, Schedulers.io())
.map(tick -> restService.getData());
我的restService.getData()返回Single<MyData>
,所以我在这里
Observable<Single<MyData>>
但我只需要服务器的响应,即Single<MyData>
,就可以订阅它。
我最终得到了这段代码:
Single.fromObservable(Observable.interval(1, TimeUnit.MINUTES, Schedulers.io())
.map(tick -> restService.getData())
.flatMap(dataSingle-> dataSingle.map(data-> data)
.toObservable()));
但这看起来太难看了。
有没有办法在不做所有这些操作的情况下达到这样的结果?
答案 0 :(得分:1)
不确定你在这里尝试做什么,也许这个?
Single.timer(1, TimeUnit.MINUTES, Schedulers.io())
.flatMap(tick -> restService.getData())
还是这个?
Observable.interval(1, TimeUnit.MINUTES, Schedulers.io())
.flatMapSingle(tick -> restService.getData())