Я хочу получить список мест с расстоянием и добавить это расстояние, только если доступно последнее местоположение.
Мой последний поставщик местоположений - Observable
, который выдает onNext
, если онимеет местоположение или завершает, если нет.
Итак, я попробовал это:
val combineLatest = Flowable
.combineLatest<List<Place>, Location, List<Place>>(
req,
getLastLocation().lastOrError().toFlowable()
,
BiFunction { places, loc ->
places.forEach {
var placeLocation = Location(it.placeName)
placeLocation.latitude = it.latitude
placeLocation.longitude = it.longitude
it.distance = location?.distanceTo(placeLocation)
}
places.sortedBy {
it.distance
}
})
combineLatest.onErrorResumeNext { t: Throwable ->
req
}
Я пытаюсь вычислить расстояние на основе последнего известного местоположения или вернуть исходный запрос без изменений, еслиnot.
Однако, когда location не существует, getLastLocation завершается без отправки, и, таким образом, lastOrError
завершается с NoSuchElementException
.Однако эта ошибка не перехватывается моим оператором onErrorResumeNext, поэтому я не могу добавить свой запасной вариант.
Что мне здесь не хватает?