内容列表

  • 2015-12-11 0 925
    RxJava操作符(二)Transforming Observables

    在上一篇文章中,我们了解了如何创建Observable,仅仅创建一个Observable可能无法满足一些复杂的场景,所以我们很可能需要将创建的Observable安装某种规则转化一下来发射数据。在这篇文章里我们来了解一下如何来转化Observable 一、Buffer 顾名思义,Buffer操作符所要做的事情就是将数据安装规定的大小做一下缓存,然后将缓存的数据作为一个集合发射出去。如下图所示,第一...

  • 2016-10-18 0 1,084
    使用Rxjava计算圆周率

    对于圆周率率的求法有很多,最近看到一个Spark的例子使用了map和reduce的方法来求一个圆周率的近似值。这个算法的思想是这样的: 半径为r的圆的面积CA = π × r × r 这个园的外切正方形的面积SA = 4 × r × r π = CA / r / r = CA × 4 / SA 根据上面的推导,我们只要知道圆形和正方形的面积之比就行了。然后我们在这个正方形的面积内随机生成足够多的点...

  • 2016-02-05 0 1,078
    RxJava操作符(十)自定义操作符

    Rxjava允许我们来自定义操作符来满足我们特殊的需求。如果我们的自定义操作符想要作用到Observable发射出来的数据上,我们就要使用lift操作符;如果我们的自定义操作符想要改变整个的Observable,就需要使用compose操作符了。 一、 lift 当我们自定义了一个操作符后,使用lift可以将我们自定义的操作符和其它的操作符一起做链式调用,就好像Rxjava原生的操作符一样。下面我...

  • 2016-01-12 0 1,456
    RxJava操作符(九)Connectable Observable Operators

    一、Publish 首先我们有必要来了解一下什么是Connectable Observable: 就是一种特殊的Observable对象,并不是Subscrib的时候就发射数据,而是只有对其应用connect操作符的时候才开始发射数据,所以可以用来更灵活的控制数据发射的时机。而Publish操作符就是用来将一个普通的Observable对象转化为一个Connectable Observable。需...

  • 2015-12-14 0 1,003
    RxJava操作符(八)Aggregate

    在这篇文章里我们来了解一下Rxjava的聚合操作符。 一、Concat Concat操作符将多个Observable结合成一个Observable并发射数据,并且严格按照先后顺序发射数据,前一个Observable的数据没有发射完,是不能发射后面Observable的数据的。 有两个操作符跟它类似,但是有区别,分别是 1.startWith:仅仅是在前面插上一个数据。 2.merge:其发射的数据...

  • 2015-12-14 0 908
    RxJava操作符(七)Conditional and Boolean

    在这篇文章里我们来了解一下条件和布尔操作符。 一、All/Amb All操作符根据一个函数对源Observable发射的所有数据进行判断,最终返回的结果就是这个判断结果。这个函数使用发射的数据作为参数,内部判断所有的数据是否满足我们定义好的判断条件,如果全部都满足则返回true,否则就返回false。 Amb操作符可以将至多9个Observable结合起来,让他们竞争。哪个Observable首先...

  • 2015-12-11 0 911
    RxJava操作符(六)Utility

    在这篇文章中我们来了解一些辅助操作符,可以让我们更加地方便地处理Observable。 一、Delay 顾名思义,Delay操作符就是让发射数据的时机延后一段时间,这样所有的数据都会依次延后一段时间发射。在Rxjava中将其实现为Delay和DelaySubscription。不同之处在于Delay是延时数据的发射,而DelaySubscription是延时注册Subscriber。 下面我们使用...

  • 2015-12-11 1 872
    RxJava操作符(五)Error Handling

    我们知道Rxjava对错误的处理很方便,就是当有错误出现的时候就会调用Subscriber的onError方法将错误分发出去,由Subscriber自己来处理错误。这种处理的错误有其优点,也有其缺点,就是每个Subscriber都要来定义如何处理错误,如果由100个Subscriber就要定义100遍,如何来统一地处理这些错误呢?这时我们就可以使用Error handling相关的操作符来集中统一...

  • 2015-12-11 0 837
    RxJava操作符(四)Combining

    一、CombineLatest CombineLatest操作符可以将2~9个Observable发射的数据组装起来然后再发射出来。不过还有两个前提: 所有的Observable都发射过数据。 满足条件1的时候任何一个Observable发射一个数据,就将所有Observable最新发射的数据按照提供的函数组装起来发射出去。 Rxjava实现CombineLast操作符可以让我们直接将组装的Obs...

  • 2015-12-11 0 892
    RxJava操作符(三)Filtering

    在上一篇文章里,我们了解了转化操作符,能将数据转化为我们想要的格式,但是如果数据集合里面有一些我们想要过滤掉的数据怎么办?这时候我们就需要使用过滤操作符了,有点类似于sql里的where,让Observable只返回满足我们条件的数据。 一、debounce debounce操作符就是起到了限流的作用,可以理解为阀门,当你半开阀门的时候,水会以较慢的速度流出来。不同之处就是阀门里的水不会浪费掉,而...