走进RxJava源码(三) -- 创建型操作符

创建型操作符

  1. create操作符
// 上游
        Observable.create(new ObservableOnSubscribe<String>() {
            @Override
            public void subscribe(ObservableEmitter<String> e) throws Exception {
                // 上游发射的
                e.onNext("A"); // 使用者自己发射
            }
        })

        // 订阅
        .subscribe(


                // 下游
                new Observer<String>() {
            @Override
            public void onSubscribe(Disposable d) {

            }

            @Override
            public void onNext(String s) {
                Log.d(TAG, "下游接收 onNext: " + s);
            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onComplete() {

            }
        })
        ;
  1. just操作符
 // 上游
        Observable.just("A", "B")  // 内部会去发射 A B

        // 订阅
        .subscribe(

                // 下游
                new Observer<String>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(String s) {
                        Log.d(TAG, "onNext: " + s);
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onComplete() {

                    }
                }
  1. fromArray操作符
 String[] strings = {"张三", "李四", "王五"};
  Observable.fromArray(strings)
                .subscribe(new Consumer<String>() {
                    @Override
                    public void accept(String s) throws Exception {
                        Log.d(TAG, "accept: " + s);
                    }
                });
  1. empty操作符
          // 上游没有发射有值得事件,下游无法确定类型,默认Object,RxJava泛型 泛型默认类型==Object
         // 上游无法指定 事件类型
        Observable.empty() // 内部一定会只调用 发射 onComplete 完毕事件

                // 订阅
                .subscribe(

                 // 下游 观察者
                 new Observer<Object>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(Object integer) {
                        // 没有事件可以接受
                        Log.d(TAG, "onNext: " + integer);
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onComplete() {
                        Log.d(TAG, "onComplete: ");

                        // 隐藏 加载框...
                    }
                }
  1. range 操作符
   Observable.range(80, 5) // 80开始  加1    数量共5个

        // 订阅
        .subscribe(

           // 下游
           new Consumer<Integer>() {
            @Override
            public void accept(Integer integer) throws Exception {
                //80 81 82 83 84  
                Log.d(TAG, "accept: " + integer);
            }
        });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Rxjava2.0概述 通过前面的文章介绍,读者对RxJava2.0应该有了初步的认识。RxJava2.0相对1....
    嘎啦果安卓兽阅读 9,433评论 0 2
  • 一、RxJava操作符概述 RxJava中的操作符就是为了提供函数式的特性,函数式最大的好处就是使得数据处理简洁易...
    无求_95dd阅读 8,661评论 0 21
  • 一、RxJava操作符概述 RxJava中的操作符就是为了提供函数式的特性,函数式最大的好处就是使得数据处理简洁易...
    测天测地测空气阅读 3,818评论 0 1
  • 一、Retrofit详解 ·Retrofit的官网地址为 : http://square.github.io/re...
    余生_d630阅读 6,060评论 0 5
  • 这首歌 就像你对我说的话 虽然听不懂 但仍然想多听一句 因为你的每句话都是那样动听 对于得不到的东西我会放弃 对于...
    半唐主义阅读 1,441评论 0 1

友情链接更多精彩内容