Можно ли вернуть два разных типа типов из Observable, который входит в map / flatMap? - PullRequest
0 голосов
/ 24 сентября 2019

Мне интересно, возможно ли сделать что-то вроде этого:

У меня есть функция, которая возвращает Observable, как это:

Observable<JSONObject> = someMethodCall().map( x -> {
/// do something
return new JSONObject().put("id", 12346");
});

Теперь я хочу углубиться и в // что-то хочет добавить некоторую логику, чтобы я мог вернуть Observable.error, для этого я не могу использовать map, но либо flatMap, мне интересно, есть ли способ использовать flatMap для обработки такого рода поведения?

1 Ответ

0 голосов
/ 24 сентября 2019

Если вы хотите, чтобы ошибки распространялись через onError, чтобы вы могли использовать такие вещи, как onErrorReturn или onErrorResumeNext, вы можете использовать flatMap, например, так:

Observable<JSONObject> = someMethodCall().flatMap( x -> {
    try {
      //do something....
      return Observable.just(new JSONObject().put("id", 12346"));
    } catch (Throwable t) {
      return Observable.error(t);
    }
  });
...