我想请求间隔数据服务。我正在使用 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()));
但这太难看了。
有没有办法在不执行所有这些操作的情况下达到这样的结果?
不知道你想在这里实现什么,也许是这个?
Single.timer(1, TimeUnit.MINUTES, Schedulers.io())
.flatMap(tick -> restService.getData())
或这个?
Observable.interval(1, TimeUnit.MINUTES, Schedulers.io())
.flatMapSingle(tick -> restService.getData())
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句