RxJava-create、observeOn 、subscribeOn、subscribe操作符

之前的博客给小伙伴们简单介绍了RxJava响应式编程的概念。我这边对RxJava的学习是通过相应的操作符的,我这个专栏会主要介绍个人在开发中常用的RxJava操作符。这篇博客重点介绍的是create操作符。

注意:小编使用的是RxJava3,部分API会与网上的RxJava2教程不一样。

create操作符

create的字面意思就是创建。所以create操作符是用来创建一个Observable的,我们直接上示例代码:

Observable.create(new ObservableOnSubscribe<String>() {
                        @Override
                        public void subscribe(@NonNull ObservableEmitter<String> emitter) throws Throwable {
                            // 发射数据
                            emitter.onNext("创建一个Observable成功啦!!!");
                        }
                    })
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribeOn(Schedulers.io())
                    .subscribe(new Consumer<String>() {
                        @Override
                        public void accept(String s) throws Throwable {
                            createBinding.mTvCreateResult.setText(s);
                        }
                    }, new Consumer<Throwable>() {
                        @Override
                        public void accept(Throwable throwable) throws Throwable {
                            createBinding.mTvCreateResult.setText("创建一个Observable失败......");
                        }
                    });

这是截取我一个开源项目的RxJava的片段,有兴趣的小伙伴可以去clone下来,有学习新的操作符,我会直接把示例代码上传。我的RxJava开源项目地址跳转:
RxJava开源项目地址 https://gitee.com/yubo168/rx-java

示例代码解析

create操作符实现的是ObservableOnSubscribe接口,我们来看看它主要做什么事情呢?

public interface ObservableOnSubscribe<@NonNull T> {

    /**
     * Called for each {@link Observer} that subscribes.
     * @param emitter the safe emitter instance, never {@code null}
     * @throws Throwable on error
     */
    void subscribe(@NonNull ObservableEmitter<T> emitter) throws Throwable;
}

实现这个接口之后,我们可以获取到一个ObservableEmitter,这是一个数据发射器。我们之前的文章有说到响应式编程也称作流式编程,ObservableEmitter继承于Emitter,我们可以让相应的数据向下流去,我们可以通过Emitter决定数据留下哪里。

subscribeOn设置Observablesubscribe方法所在的线程,生产数据。
observeOn 设置subscribeaccept方法所在的线程,消耗数据。

这是我了解到的RxJava的create、observeOn 、subscribeOn操作符,希望对刚开始学RxJava的小伙伴有帮助。有什么问题可以在评论去和我讨论!小伙伴们也可以关注我的公众号:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值