我想调用onNext然后调用onError方法。但我不能这样做。有谁能够帮我?例如:
Observable.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(ObservableEmitter<String> e) throws Exception {
e.onNext("value");
e.onError(new Exception("exc"));
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<String>() {
@Override
public void accept(@NonNull String s) throws Exception {
Log.v("TAG", s);
}
}, new Consumer<Throwable>() {
@Override
public void accept(@NonNull Throwable throwable) throws Exception {
Log.v("TAG", throwable.getLocalizedMessage());
}
});
输出:exc
Thrad.sleep(500)帮助我,但我认为这是错误的方式
答案 0 :(得分:1)
如果您未在delayError = true
运算符中指定observeOn
,那么它最终会在结束{{1}之前检查是否终止(onError
已被调用)这是事先调用过的。
参见文档:
delayError - 指示onError通知是否可能不会在调度边界另一侧的onNext通知之前切断。如果为true,以onError结尾的序列将按照从上游
接收的顺序重放