所以我有我的form
模型,它包含我要验证的所有数据,然后发送到服务器。让我们保持尽可能简单 - isFormValid
或api请求应返回Observable.errr(throwable)
,onError()
应调用subscriber
中的public void submitForm(Form form){
Observable
.just(form)
.flatMap(form->{
if(isFormValid(form))
return Observable.just(form);
else
return Observable.error(someValidationError);
})
.flatMap(form->{
Request req = new Request(form);
try{
return Observable.just(getResponseFrom(req));
}
catch(ApiException e){
return Observable.error(e)
}
}).subscribe(
new Subscriber<ResponseModel>(){
@Override
public void onComplete(){}
@Override
public void onError(Throwable t){}
@Override
public void onNext(ResponseModel model){}
}
);
}
。
submitForm()
好的,现在让我们说用户输入无效数据,调用onError
并在subscriber
然后onComplete
调用-sure enought- submitForm()
。然后,用户输入有效数据,并再次调用submitForm()
。
现在问题出现了 - 在第二次flatMap
电话中没有任何反应!至少Func1
flatMap
和第二Func2
__get
未被调用。
为什么?我究竟做错了什么 ?这是一个建筑缺陷吗?