前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >再忆RxJava---Single,Maybe,Completable介绍

再忆RxJava---Single,Maybe,Completable介绍

作者头像
提莫队长
发布2020-06-02 15:30:58
1.2K0
发布2020-06-02 15:30:58
举报
文章被收录于专栏:刘晓杰刘晓杰

Single

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

代码语言:javascript
复制
        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方法,因为没有返回值

代码语言:javascript
复制
        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方法,因为没有返回值

代码语言:javascript
复制
        Completable.complete()
                .delay(10, TimeUnit.SECONDS, new IoScheduler())
                .subscribeWith(new DisposableCompletableObserver() {
                    @Override
                    public void onComplete() {

                    }

                    @Override
                    public void onError(Throwable e) {

                    }
                });
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Single
  • Maybe
  • Completable
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档