RxJava 学习笔记<一>
2018-03-09 16:09
302 查看
摘要: RxJava
在Java的前面加上了Rx并不是一种新的语言,而是在用 java 实现的 reactive extensions,当然还有很多其他语言的实现,如 rxNet,RxJs,Rxscala......ReactiveX是利用可观察序列编写异步事件和基于事件的程序的库。
它扩展了观察者模式以支持数据序列和/或事件序列,并添加了操作符,这些操作符允许您以声明方式组合序列,同时抽象出对低级别线程、同步、线程安全、并发数据结构和非阻塞I/O等问题的关注。
在可观察模型允许您使用像操作数组或者集合的简单、可操作的操作来处理异步事件流。它使您从回调的网络中解脱出来,从而使代码可读性更强,而且更不容易出错。
ReactiveX提供了一个操作符集合,这些操作符可以过滤、选择、转换、组合和合成观测值。这可以有效地执行和组合。然后我们看一下在Java上的实现
然后我们先写个demo看看,加入依赖,我这里用了低版本的 1.3.5,不妨碍演示
让我们先创建一个Observable:
然后创建一个 Subscriber 来消费这个数据:
然后我们把这两者组合起来:
当订阅完成时,myObservable调用 subscriber 的next()和onComplete()方法。因此,mySubscriber输出“hello,world!”,然后终止。
然后我们简化一下代码,RxJava具有多个内置的创建 Observable 方法来实现常用任务。在本例中,Observable.just() 发出一个 item,然后完成,下面的代码和上面类似。
如果我们并不关心onCompleted()和onError(),因此我们可以使用一个简单的类来定义在onNext()期间应该做什么:
现在,让我们把方法调用链接起来,去掉这些变量:
这里我们可以使用Java 8 lambdas,变的更加简洁:
未完待续!!
代码:https://github.com/woshiyexinjie/rxjava-leaner.git
参考:
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0430/2815.html(中文) http://reactivex.io/tutorials.html(官方)
有什么讨论的内容,可以加我微信公众号:
在Java的前面加上了Rx并不是一种新的语言,而是在用 java 实现的 reactive extensions,当然还有很多其他语言的实现,如 rxNet,RxJs,Rxscala......ReactiveX是利用可观察序列编写异步事件和基于事件的程序的库。
它扩展了观察者模式以支持数据序列和/或事件序列,并添加了操作符,这些操作符允许您以声明方式组合序列,同时抽象出对低级别线程、同步、线程安全、并发数据结构和非阻塞I/O等问题的关注。
在可观察模型允许您使用像操作数组或者集合的简单、可操作的操作来处理异步事件流。它使您从回调的网络中解脱出来,从而使代码可读性更强,而且更不容易出错。
ReactiveX提供了一个操作符集合,这些操作符可以过滤、选择、转换、组合和合成观测值。这可以有效地执行和组合。然后我们看一下在Java上的实现
然后我们先写个demo看看,加入依赖,我这里用了低版本的 1.3.5,不妨碍演示
让我们先创建一个Observable:
然后创建一个 Subscriber 来消费这个数据:
然后我们把这两者组合起来:
当订阅完成时,myObservable调用 subscriber 的next()和onComplete()方法。因此,mySubscriber输出“hello,world!”,然后终止。
然后我们简化一下代码,RxJava具有多个内置的创建 Observable 方法来实现常用任务。在本例中,Observable.just() 发出一个 item,然后完成,下面的代码和上面类似。
如果我们并不关心onCompleted()和onError(),因此我们可以使用一个简单的类来定义在onNext()期间应该做什么:
现在,让我们把方法调用链接起来,去掉这些变量:
这里我们可以使用Java 8 lambdas,变的更加简洁:
未完待续!!
代码:https://github.com/woshiyexinjie/rxjava-leaner.git
参考:
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0430/2815.html(中文) http://reactivex.io/tutorials.html(官方)
有什么讨论的内容,可以加我微信公众号:
相关文章推荐
- 冷热可观察量RxJava 学习笔记<二十二>
- 开始系统的学习C++ 之 C++学习笔记<一>
- Celery 的学习笔记--tornado异步开发的好朋友<一>
- linux学习笔记:<一>linux文件的压缩与打包
- Cocos2d-js 学习笔记<一> 运行Hello World
- python学习笔记<一>
- FreeMarker学习笔记-<一>快速入门
- cocos2dx lua学习笔记 <一> quick 3.5把自定义C++类绑定到lua
- Delphi-IOCP学习笔记<一>====从零开始学习IOCP
- 大数据学习笔记<一>
- 【Java编程】Java学习笔记<一>
- libevent 学习笔记<一>
- LDAP学习笔记<一>关于LDAP协议及其基本概念
- 【Java编程】Java学习笔记<一>
- hadoop学习笔记<一>----hadoop简介
- PostgreSQL学习笔记5之函数和操作符<一>
- Django 学习笔记<一>
- 设计模式入门--设计模式学习笔记<一>
- <一>Strom实时计算学习笔记
- Windows学习笔记12——键盘相关<一>