RxJava重新创建可观察的onError

时间:2016-03-15 17:04:10

标签: android rx-java observable subscriber reactivex

所以我有我的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未被调用。 为什么?我究竟做错了什么 ?这是一个建筑缺陷吗?

0 个答案:

没有答案