你用不惯 RxJava,只因缺了这把钥匙(推荐)

这篇文章主要介绍了RxJava操作符,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

本文最初是为部门内部培训而准备的,但经过一番调研发现,同事们用不惯 RxJava,并不是因为网上介绍 “怎么用” 的教程不够多,恰恰是因为,一上来就急着发车的教程无数、却从未有过哪篇教程 舍得用几句话的功夫点破 RxJava 操作符究竟为何方神圣、我们为什么要用、为什么要那样用。


Observable.just(1, 3, 5, 7, 9)
  .map(i -> i + 1)
  .filter(i -> i < 5)
  .subscribe(getObserve());

事实上,在相当长的一段时间里,我也和大部分人一样,只知道使用 RxJava 来完成异步回调,至于那些操作符,则是能不用尽量不用,因为不知道葫芦里卖的什么药,看不懂、不会用。

因此,本文的初衷绝不是翻译官方文档、教大家怎么用,而是旨在帮助大家对 RxJava 操作符 完成感性上的认识。鉴于本次培训的效果还不错、同事们听了都说好,我便在 GitHub 开源了全套操作符示例代码(不要慌,链接文末已给出)。如果你在阅读本文后觉得恍然大悟,原来 RxJava 操作符是这么回事,那么我的愿望也就达到了。

编程语言包含多种编程范式

我对操作符本质的顿悟,始于我对编程语言的理解。和你一样,我是做安卓开发,但有一天,我决定跳出 Java,从整个计算机科学的角度来学习和理解编程语言的本质,在这过程中,我接触了“编程范式”这个概念,了解到原来每个编程语言大都包含多种编程范式。

常见的编程范式有:命令式编程、声明式编程等。

以 Java 为例,咱们 Java 最主要的编程范式是命令式编程。命令式编程 即按顺序执行具体的命令,这些命令不仅交待了做什么,还详细交待了每一步怎么做。

SQL 也是种编程语言,是一种典型的声明式编程。声明式编程的特点是,只交待做什么,但无须交待怎么做。

操作符的本质是声明式编程

下面回到我们最初的问题上来。你之所以用不惯 RxJava 操作符,是因为你习惯性地使用命令式编程思维 来理解实际上是声明式编程的操作符。

学习操作符,就和你在大学里接受的 SQL 语句一样理所当然。

SQL 你是理解的,就是按一定的规则,向数据库中的数据声明你要做什么。

 同理,RxJava 也是按一定的规则,向数据流声明你要做什么。

转换成代码,便成为以下这样。


Observable.just(1, 3, 5, 7, 9)
  .map(i -> i + 1)
  .filter(i -> i < 5)
  .subscribe(getObserve());

这样说,你理解了吗?

全套操作符示例代码

github.com/KunMinX/RxJ…

以上所述是小编给大家介绍的RxJava操作符详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对得得之家网站的支持!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Retrofit是当前应用非常广泛的网络请求框架,通常结合RxJava来进行网络请求,本文将展示一个采用RxJava+Retrofit的网络请求demo,感兴趣的可以了解一下
Android线程优化知识点学习 目录 前言 一.线程调度原理解析 线程调度的原理 线程调度模型 Android 的线程调度 线程调度小结 二.Android 异步方式汇总 Thread HandlerThread IntentService AsyncTask 线程池 RxJava 三.Android线程优化实战 线程使用准则 线程池优化实战
Android实现倒计时的方案梳理 目录 前言 一.CountDownTimer的实现 二.直接用Handler的实现 三.直接用Time.TimeTask的实现 四.使用Theard倒计时 五.使用框架RxJava 六.Kotlin Flow 的实现 总结 前言 关于倒计时可以说我们App开发中常见的一种场景了,比如Splash倒计时