RxJava Tutorial on RxJava Completable Observable

the completable class represents deferred response. completable observable can either indicate a successful completion or error.

class declaration

following is the declaration for io.reactivex.completable class −

public abstract class completable
extends object
implements completablesource

protocol

following is the sequential protocol that completable observable operates −

onsubscribe (onerror | oncomplete)?

completable example

create the following java program using any editor of your choice in, say, c:\> rxjava.

observabletester.java

import java.util.concurrent.timeunit;

import io.reactivex.completable;
import io.reactivex.disposables.disposable;
import io.reactivex.observers.disposablecompletableobserver;
import io.reactivex.schedulers.schedulers;

public class observabletester {
   public static void main(string[] args) throws interruptedexception {

      //create an observer
      disposable disposable = completable.complete()
         .delay(2, timeunit.seconds, schedulers.io())
         .subscribewith(new disposablecompletableobserver() {
         @override
         public void onerror(throwable e) { 
            e.printstacktrace();
         }
         @override
         public void onstart() {
            system.out.println("started!");
         }
         @override
         public void oncomplete() {
            system.out.println("done!");
         }
      }); 
      thread.sleep(3000);
      //start observing
      disposable.dispose();
   }
}

verify the result

compile the class using javac compiler as follows −

c:\rxjava>javac observabletester.java

now run the observabletester as follows −

c:\rxjava>java observabletester

it should produce the following output −

started!
done!