RxJava2操作符之“Take”
2017-03-31 本文已影响1105人
坑吭吭
前言
最近我也在学习RxJava2,在网上找了好多文章来读,发现大多数都是说RxJava2和RxJava之间到底有什么区别的,每一个例子都要考虑RxJava里是怎么写的,让人看着都头大,知道后来我在简书上发现了一个非常棒的RxJava2的入门系列文章,我觉得非常的好,在这里可以推荐给大家:http://www.jianshu.com/p/464fa025229e。
而我准备要写的这个系列则是在入门之后的,对于各种操作符的用法的讲解,在此之前我也翻译了一个歪果仁的RxJava2的示例代码,文章内的截图和代码我也准备用这个项目里的内容来,如果想直接看代码的童鞋可以直接传送:https://github.com/nelson1110/RxJava2-Android-Samples。
文章内容我也准备从简单的操作符写起,最后把比较抽象不容易搞清楚的操作符单独拿出来整理一下。
作用
emit only the first n items emitted by an Observable
发射这个被观察者的前n个item
示例用法
Observable.just(1, 2, 3, 4, 5)
// 运行在后台线程
.subscribeOn(Schedulers.io())
// 运行在主线程
.observeOn(AndroidSchedulers.mainThread())
//注意take操作符->只发送前三个事件
.take(3)
.subscribe(getObserver());//这里是个观察者,这个例子中观察者并不重要。。
运行结果
1,2,3
分析
我们创建了一个会发送1~5 五个item的被观察者
然后用操作符take,里面的参数为3,即只发送前三个item
最后,我们从观察者中拿到的item为1,2,3
总结
前几个操作符肯定比较容易理解,甚至一看名字就知道干啥的。这样做主要是为了更容易的进入学习的状态,以及增强自己掌握它的信心。