я использую Retrofit с RxJAva для приложения, которое получает Rss-каналы, но rss не содержит всей информации, поэтому я использую jsoup для анализа каждой ссылки на элемент, для получения изображения и описания статьи. теперь я использую это так:
public Observable<Rss> getDumpData() {
return newsAppService.getDumpData()
.flatMap(rss -> Observable.from(rss.channel.items)
.observeOn(Schedulers.io())
.flatMap(Checked.f1(item -> Observable.just(Jsoup.connect(item.link).get())
.observeOn(Schedulers.io())
.map(document -> document.select("div[itemprop=image] > img").first())
.doOnNext(element -> item.image = element.attr("src"))
)))
.defaultIfEmpty(rss)
.ignoreElements()
.observeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread());
}
и я получаю сообщение об ошибке в этой строке: defaultIfEmpty(rss)
он не распознает rss плоской карты. и когда я перемещаю defaultIfEmpty(rss)
в скобки плоской карты, у меня появляется другая ошибка, говорящая о том, что тип возвращаемого значения должен быть изменен на Element. есть ли у них какое-либо решение?
flatMap
параметруdefaultIfEmpty
? Вы хотите поймать исключение? - person R. Zagórski   schedule 19.10.2016newsAppService.getDumpData()
или из-за вашего преобразования для получения изображения? - person R. Zagórski   schedule 19.10.2016