我想检查Api1的结果,如果结果是200或"成功",请求Api2。
我的错误代码:
RetrofitService.getApis().api1()
.filter(new Predicate<Result1>() {
@Override
public boolean test(Result1 result1) throws Exception {
return result1.code==200;
}
})
.flatMap(new Function<Result1>, ObservableSource<Result2>>() {
@Override
public ObservableSource<Result2> apply(Result1 result1 ) throws Exception {
return RetrofitService.getApis().api2(result1.data);
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<Result2>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Result2 value) {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
但是,当result1.code!= 200时,Observer永远不会被调用。