是否有可能 return 两种不同类型的 Observable 进入 map/flatMap?
Is it possible to return two different kinds of types from an Observable that goes into a map/flatMap?
我想知道是否可以这样做:
我有一个 return 像这样的 Observable 函数:
Observable<JSONObject> = someMethodCall().map( x -> {
/// do something
return new JSONObject().put("id", 12346");
});
现在我想深入并在 //do something 中添加一些逻辑,所以我可以 return 一个 Observable.error
,为此我不能使用 map
但要么flatMap,我想知道是否有任何方法可以使用 flatMap 来处理这种行为?
假设您希望通过 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);
}
});
我想知道是否可以这样做:
我有一个 return 像这样的 Observable 函数:
Observable<JSONObject> = someMethodCall().map( x -> {
/// do something
return new JSONObject().put("id", 12346");
});
现在我想深入并在 //do something 中添加一些逻辑,所以我可以 return 一个 Observable.error
,为此我不能使用 map
但要么flatMap,我想知道是否有任何方法可以使用 flatMap 来处理这种行为?
假设您希望通过 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);
}
});