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);