chrjs
chrjs

Reputation: 2443

RxJava2: Alternative to Observable<Void>

I have an API which returns only error/success codes, with no body. With RxJava1 I would have used Observable<Void> as the return value for this call.

What can I use for RxJava2? The hint on the Wiki for RxJava2 (link) is not helpful, since I can't change how the API works.

Setup:

compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'

Upvotes: 7

Views: 3799

Answers (2)

Alfred Afutu
Alfred Afutu

Reputation: 191

You can still use an Observable but replace the Void type with an enum type which is defined like this

public enum Terminal {
    TERMINAL
}

and then use it like this

Observable<Terminal>

PS: You can name the enum anything you want

Upvotes: 0

Graham Borland
Graham Borland

Reputation: 60681

Use Completable.

If the operation succeeds, it will emit a successful termination event. If it fails, you can use your own Exception subclass to wrap the necessary error codes.

Upvotes: 25

Related Questions