系列故事的第4篇介绍RxJava的合并API
zip
zipzip方法将多个Observables的发射物结合到一起,它只发射与发射数据项最少的那个Observable一样多的数据。
merge
merge使用Merge操作符你可以将多个Observables的输出合并,就好像它们是一个单个的Observable一样。Merge可能会让合并的Observables发射的数据交错。
concat
concat与merge类似,只不过它不会让数据交错,它会按顺序一个接着一个发射多个Observables的发射物。
combineLatest
combineLatestcombineLatest操作符行为类似于zip,但是只有当原始的Observable中的每一个都发射了一条数据时zip才发射数据。combineLatest则在原始的Observable中任意一个发射了数据时发射一条数据。当原始Observables的任何一个发射了一条数据时,CombineLatest使用一个函数结合它们最近发射的数据,然后发射这个函数的返回值。
join
joinjoin操作符把类似于combineLatest操作符,也是两个Observable产生的结果进行合并,合并的结果组成一个新的Observable,但是join操作符可以控制每个Observable产生结果的生命周期,在每个结果的生命周期内,可以与另一个Observable产生的结果按照一定的规则进行合并。
startWith
startWith如果你想要一个Observable在发射数据之前先发射一个指定的数据序列,可以使用StartWith操作符,接受一个Iterable或者多个Observable作为函数的参数。
switch
switchswitch方法将一个发射多个Observables的Observable转换成另一个单独的Observable,注意:当原始Observable发射了一个新的Observable时,它将取消订阅之前的那个Observable。这意味着,在后来那个Observable产生之后到它开始发射数据之前的这段时间里,前一个Observable发射的数据将被丢弃。
总结:
以上的方法已经基本例举了RxJava中有关Observable对象过滤的API,具体用法还需要大家多加练习呀!
注:本人会在此系列文章的末尾加上GitHub源码地址,敬请期待。。。
网友评论