2016-09-02 6 views
2

Я вызываю URL-адрес с дооснащением, и меня не волнует результат. Есть ли способ игнорировать метод onNext?RxJava игнорировать 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 

ответ

4

Вместо Observable вы можете вернуть Completable от Retrofit интерфейс. Он служит точно так же, как вам нужно.

0

Я не думаю, что существует способ избежать реализации onNext() при подписке на наблюдаемый, если вы хотите иметь обработку ошибок. В качестве альтернативы вы можете создать Observer и повторно использовать его в своих вызовах subscribe, но вам по-прежнему необходимо реализовать поведение onNext().

Пример:

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

getRetrofit().create(UserAPI.class) 
      .doSomething(a, b) 
      .subscribeOn(Schedulers.newThread()) 
      .subscribe(errorObserver); 
Смежные вопросы