RxJava не разрешит пустые значения в потоке, поэтому, если map
вернет нулевое значение, поток завершится с событием ошибки.
Вместо этого вы можете заменить map
на flatMapMaybe
и вернуть либо Maybe.just(service)
, либо Maybe.empty()
, если значение равно нулю. Затем вы можете утверждать, был ли результат успешным или нет в вашем subscribe
обратном вызове, где onSuccess
означает, что значение не было нулевым, а onComplete
означает, что значение было нулевым.
Два дополнительных примечания. Возможно, вы возвращаетесь не должны быть объявлены недействительными, так как эта информация будет захвачена в самом самом Возможно. Однако я не уверен, что вам все равно нужно обрабатывать этот нулевой случай, поскольку, насколько я могу судить, retrofit.create
не должен возвращать ноль в первую очередь.