Reactive Programming with RxJava-Chapter3:Operators and Transformations(1)

Core Operators:Mapping and Filtering

In RxJava,you must forget about mutating data structures internally:modifying variables outside of stream is considered very nonidiomatic and dangerous.

1、filter()

filter()

2、1-to-1 Transformations Using map()

map()
All types wrapped with Observable should be immutable for all practical application

3、Wrapping Up Using flatMap()

flatMap()
You use flatMap() for the following situations:
- The result of transformation in map() must be an Observable()
- You need a one-to-many transformation,a single event is expanded into multiple sub-events.

flatMapIterable()
flatMapIterable()

public final <R> Observable<R> flatMap(
            Func1<? super T, ? extends Observable<? extends R>> onNext,
            Func1<? super Throwable, ? extends Observable<? extends R>> onError,
            Func0<? extends Observable<? extends R>> onCompleted) 

If you don`t know how to handle an exception,let your supervisor(e.g.,the calling method,parent task ,or downstream Observable) make a decision.

4、Postponing Events Using the delay() Operator

delay()

5、Order of Events After flatMap()

6、Preserving Order Using concatMap()

concatMap()

Controlling the concurrency of flatMap()

 public final <R> Observable<R> flatMap(Func1<? super T, ? extends Observable<? extends R>> func, int maxConcurrent)

Attention
flatMap() uses the merge() operator internally that subscribes to all sub-Observables at the same and does not make any distinction between.On the other hand,concat() subscribes only to the first underflying Observable and continues with the second one when the first one completes.

最后,安利一款自己写的基于MVP的Android开发框架

https://github.com/sxenon/Pure
欢迎大家拍砖,如果觉得好,麻烦多多star

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值