RxJava忽略onNext

时间:2016-09-02 10:39:28

标签: java rx-java reactive-programming rx-android reactivex

我正在使用Retrofit调用网址,而我并不关心结果。反正有没有忽略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

2 个答案:

答案 0 :(得分:4)

您可以从Observable界面返回Completable,而不是Retrofit。它完全符合您的需要。

答案 1 :(得分:0)

如果您想要进行错误处理,我也不认为在订阅observable时有一种方法可以避免onNext()实现。或者,您可以创建Observer并在subscribe次调用中重复使用它,但仍需要实施onNext()行为。

示例:

Observer errorObserver = Observers.create(t -> {}, Handler::handleError);

getRetrofit().create(UserAPI.class)
            .doSomething(a, b)
            .subscribeOn(Schedulers.newThread())
            .subscribe(errorObserver);