Похоже, вы хотите поглотить ошибки, если не удалось сохранить вызов Mongo и перенаправить результат вашему подписчику.
public Observable<LowestFareByProvider> lowestFareByProvider(final
FlightSearchRequest flightSearchRequest) {
final FlightSpecification flightSpecification = FlightSpecification.builder()
.from(flightSearchRequest.getFrom())
.to(flightSearchRequest.getTo())
.departure(flightSearchRequest.getDeparture())
.build();
return flightService.lowestFareByProvider(flightSpecification, flightSearchRequest.getProviders())
.flatMap(result -> {
logger.debug("Saving to db in thread: {}", Thread.currentThread().getName());
return Observable.fromCallable(() -> { lowestFareByProviderRepository.save(result)})
.onErrorReturn(result);
});
Пожалуйста, проверьте синтаксис. Здесь onErrorReturn
игнорирует ошибки из вызова сохранения Mongo (если есть) и перенаправляет результат обратно подписчику. И я удалил Single::toObservable
, так как у вас есть Observable
на этом этапе.