RxJava - Computation Scheduler



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.rxjava3.core.Completable<T> class −

public abstract class Completable extends Object implements CompletableSource

Protocol

Following is the sequential protocol that Single Observable operates −

onSubscribe (onError | OnComplete)?

Example - Creating a Completable Observable Class to get Data

ObservableTester.java

package com.tutorialspoint; import io.reactivex.rxjava3.core.Completable; public class ObservableTester { public static void main(String[] args) throws InterruptedException { Completable.complete().doOnComplete(() -> System.out.println("Hello World")).subscribe(); } }

Output

Compile and Run the code to verify the following output −

Hello World

Example - Usage of Completable Observable Class to get Data after a delay of 2 seconds

ObservableTester.java

package com.tutorialspoint; import java.util.concurrent.TimeUnit; import io.reactivex.rxjava3.core.Completable; import io.reactivex.rxjava3.disposables.Disposable; import io.reactivex.rxjava3.observers.DisposableCompletableObserver; import io.reactivex.rxjava3.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(); } }

Output

Compile and Run the code to verify the following output −

Started!
Done!
Advertisements