Я хочу запросить услугу для данных с интервалом.
Я использую 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()));
Но это выглядит слишком уродливо.
Есть ли способ достичь такого результата без выполнения всех этих действий?