再忆RxJava---Single,Maybe,Completa

2019-08-25  本文已影响0人  勇敢地追

Single

Single和Observable类似,但是它主要处理单个数值,它只会返回onSuccess和onError,没有onComplete

        Single.just("Hello World")
                .delay(10, TimeUnit.SECONDS, new IoScheduler())
                .subscribeWith(new DisposableSingleObserver<String>() {
                    @Override
                    public void onSuccess(String s) {

                    }

                    @Override
                    public void onError(Throwable e) {

                    }
                });
                // .subscribe(new SingleObserver<String>() {});---此方法没有返回值,所以不用

Single默认只是调用onSuccess。可以在Single.create中手动调用onError

Maybe

Maybe,也就是“或许”的意思。它是一种延迟计算,要么发射单个数据,要么不发送数据,要么发送exception
onSuccess,onError和onComplete三个方法,Observable只有onError和onComplete不能同时存在,但是Maybe完全互斥(DelayMaybeObserver的run方法有)
和Single一样不能用subscribe方法,因为没有返回值

        Maybe.just("Hello World")
                .delay(10, TimeUnit.SECONDS, new IoScheduler())
                .subscribeWith(new DisposableMaybeObserver<String>() {
                    @Override
                    public void onSuccess(String s) {

                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onComplete() {

                    }
                });

Completable

CompletableDelay内部类Delay的run方法可以知道,要么onError,要么onComplete
和Single一样不能用subscribe方法,因为没有返回值

        Completable.complete()
                .delay(10, TimeUnit.SECONDS, new IoScheduler())
                .subscribeWith(new DisposableCompletableObserver() {
                    @Override
                    public void onComplete() {

                    }

                    @Override
                    public void onError(Throwable e) {

                    }
                });
上一篇 下一篇

猜你喜欢

热点阅读