CombineLatest ошибка сокрытия - PullRequest
0 голосов
/ 25 июня 2018

Я хочу получить список мест с расстоянием и добавить это расстояние, только если доступно последнее местоположение.

Мой последний поставщик местоположений - 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, поэтому я не могу добавить свой запасной вариант.

Что мне здесь не хватает?

...