2019-07-02

rxjava2 的学习

学习路径
废话不多说直接贴链接

https://www.jianshu.com/u/c50b715ccaeb 这个人的rxjava2学习不用多说,言简意骇,没得说

https://blog.csdn.net/shangmingchao/article/details/72247730 在第一个学完之后该对rxjava有个大致框架的认识,这个很不错

第三步跑去运用就很ok了

我自己的学习路程

我自己学习rxjava是真的很头疼,不过看完第二个链接我一通百通

对于我来说
也就是说Subscriber订阅Flowable,Observer订阅Observable。 这句话是解谜的关键

Subscription与Disposable的关系

由于命名冲突,把rx 包改成org.reactivestreams。此外org.reactivestreams.Subscriber 不能从外面添加、取消或请求。
为了弥补这一空缺,我们为Flowable定义了抽象类DefaultSubscriber, ResourceSubscriber 和 DisposableSubscriber 分别提供了类似于rx.Subscriber的资源跟踪支持,并且可以从外面取消 dispose():

ResourceSubscriber<Integer> subscriber = new ResourceSubscriber<Integer>() {
    @Override
    public void onStart() {
        request(Long.MAX_VALUE);
    }

    @Override
    public void onNext(Integer t) {
        System.out.println(t);
    }

    @Override
    public void onError(Throwable t) {
        t.printStackTrace();
    }

    @Override
    public void onComplete() {
        System.out.println("Done");
    }
};

Flowable.range(1, 10).delay(1, TimeUnit.SECONDS).subscribe(subscriber);

subscriber.dispose();

注意,由于Reactive-Streams的兼容性,方法onCompleted被重命名为onComplete。
因为1.x中,Observable.subscribe(Subscriber)返回Subscription,用户经常添加Subscription到CompositeSubscription中,例如:

CompositeSubscription composite = new CompositeSubscription();

composite.add(Observable.range(1, 5).subscribe(new TestSubscriber<Integer>()));

由于Reactive-Streams规范,Publisher.subscribe无返回值。为了弥补这一点,我们增加了E subscribeWith(E subscriber)方法。因为在2.x中ResourceSubscriber 直接实现了Disposable,所以代码可以这样写。

CompositeDisposable composite2 = new CompositeDisposable();

composite2.add(Flowable.range(1, 5).subscribeWith(subscriber));

同时DisposeSubscriber和DefaultSubscriber都实现了Disposable;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、Retrofit详解 ·Retrofit的官网地址为 : http://square.github.io/re...
    余生_d630阅读 2,083评论 0 5
  • 从16年11月份推出RxJava 2.0 ,到现在差不多大半年的时间里,RxJava已经来到了2.x时代,RxJa...
    依然范特稀西阅读 9,573评论 5 39
  • RxJava2.0已经完全基于Reactive-Streams库重写,Reactive-Streams是从RxJa...
    mcivicm阅读 1,920评论 0 1
  • What is Rx? 基本概念 RxJava – Reactive Extensions for the JVM...
    YamLee阅读 2,240评论 0 4
  • 1.什么时候使用Flowable,什么时候使用Observable? 下面是官方文档(原文)的直接翻译: 一个小遗...
    aicaprio阅读 1,009评论 0 0

友情链接更多精彩内容