RxJava 忽略 onNext
RxJava ignore onNext
我正在用 Retrofit 调用 url,我不关心结果。无论如何要忽略 onNext 方法吗?
目前我正在使用:
getRetrofit().create(UserAPI.class)
.doSomething(a, b)
.subscribeOn(Schedulers.newThread())
.subscribe(t -> {}, Handler::handlerError);
如您所见,t -> {}
什么都不做,我想像这样减少它:
getRetrofit().create(UserAPI.class)
.doSomething(a, b)
.subscribeOn(Schedulers.newThread())
.subscribe(null, Handler::handlerError);
但出现错误
java.lang.IllegalArgumentException: onNext can not be null
您可以从 Retrofit
界面 return Completable 而不是 Observable
。它的用途与您需要的完全相同。
如果您还想进行错误处理,我认为在订阅可观察对象时没有办法避免 onNext()
实现。或者,您可以创建一个 Observer
并在 subscribe
调用中重复使用它,但您仍然需要实施 onNext()
行为。
示例:
Observer errorObserver = Observers.create(t -> {}, Handler::handleError);
getRetrofit().create(UserAPI.class)
.doSomething(a, b)
.subscribeOn(Schedulers.newThread())
.subscribe(errorObserver);
我正在用 Retrofit 调用 url,我不关心结果。无论如何要忽略 onNext 方法吗?
目前我正在使用:
getRetrofit().create(UserAPI.class)
.doSomething(a, b)
.subscribeOn(Schedulers.newThread())
.subscribe(t -> {}, Handler::handlerError);
如您所见,t -> {}
什么都不做,我想像这样减少它:
getRetrofit().create(UserAPI.class)
.doSomething(a, b)
.subscribeOn(Schedulers.newThread())
.subscribe(null, Handler::handlerError);
但出现错误
java.lang.IllegalArgumentException: onNext can not be null
您可以从 Retrofit
界面 return Completable 而不是 Observable
。它的用途与您需要的完全相同。
如果您还想进行错误处理,我认为在订阅可观察对象时没有办法避免 onNext()
实现。或者,您可以创建一个 Observer
并在 subscribe
调用中重复使用它,但您仍然需要实施 onNext()
行为。
示例:
Observer errorObserver = Observers.create(t -> {}, Handler::handleError);
getRetrofit().create(UserAPI.class)
.doSomething(a, b)
.subscribeOn(Schedulers.newThread())
.subscribe(errorObserver);