Развернуть вложенные Obsevable - PullRequest
0 голосов
/ 25 апреля 2018

Я хочу запросить услугу для данных с интервалом. Я использую 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 голосов
/ 25 апреля 2018

Не уверен, что вы пытаетесь достичь здесь, может быть, это?

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

или это?

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