我在Android
應用與RxJava
結合不同的業務之後發送的onError(),我想,要麼流成功完成,並提交onNext()
項目或10秒後,一個onError
將被拋出。RxJava 10secs
我已經試過這樣的事情與timeout
:
Observable.from(list)
.doOnNext(new Action1<List<String>>() {
@Override
public void call(List<String> list) {
//do something here
}
})
.filter(new Func1<List<String>>, Boolean>() {
@Override
public Boolean call(List<String> list) {
return list != null;
}
})
.flatMap(new Func1<List<String>>, Observable<MyResponse>>() {
@Override
public Observable<MyResponse> call(List<String> list) {
//flatmap something here
return Observable.just(new MyResponse(list));
}
})
.flatMap(new Func1<MyResponse, Observable<AnotherResponse>>() {
@Override
public Observable<AnotherResponse> call(MyResponse myResponse) {
//do something here
return Observable.just(new AnotherResponse(myResponse));
}
})
.timeout(10, TimeUnit.SECONDS)
.subscribe(new Subscriber<AnotherResponse>()) {
//do Subscription stuff here
});
但是,這將在任何情況下拋出一個超時,我只是想跳到onError
如果上面列出的流量並沒有在10秒成功完成。任何建議如何我可以實現這一目標?
基本上'timeout'會在您的時間限制內沒有發射任何物品時引發錯誤狀態。基本上我認爲你的方法可行。你的鏈條是否完整?如果它沒有完成,那麼這可能是原因,爲什麼執行超時。 – Christopher
@Christopher你是對的,我的連鎖店沒有完成 – Eve