我已经实现了这样的 POJO。
public class WebResponse<T> {
private String Response;
private String Message;
private T Result;
}
例如,如果Response
成功,我将收到Result
.
Country
为了在s上执行组合操作,我只flatMap
使用了 WebResponse 并应用了相关的操作符。像这样:
Observable<WebResponse<ArrayList<Country>>> countryListAsObservable = api.getCountryListAsObservable();
countryListAsObservable
.subscribeOn(AndroidSchedulers.mainThread())
.flatMap(
new Func1<WebResponse<ArrayList<Country>>, Observable<?>>() {
@Override
public Observable<Country> call(WebResponse<ArrayList<Country>> arrayListWebResponse) {
return Observable.from(arrayListWebResponse.getResult());
}
})
.map(new Func1<Country, String>() {
@Override
public String call(Country country) {
return country.getName();
}
})
.subscribe(
new Action1<String>() {
@Override
public void call(String o) {
Log.i("Country name", o);
}
});
现在服务器本身有可能会发送失败,该失败将在Response
. 发生这种情况时,我想触发Subscriber
s onError()
。
我怎样才能在不破坏链条的情况下做到这一点?