展开嵌套Obsevable

时间:2018-04-25 13:39:50

标签: android rx-java2

我想请求间隔数据服务。 我正在使用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()));

但这看起来太难看了。

有没有办法在不做所有这些操作的情况下达到这样的结果?

1 个答案:

答案 0 :(得分:1)

不确定你在这里尝试做什么,也许这个?

Single.timer(1, TimeUnit.MINUTES, Schedulers.io())
    .flatMap(tick -> restService.getData())

还是这个?

Observable.interval(1, TimeUnit.MINUTES, Schedulers.io())
    .flatMapSingle(tick -> restService.getData())