rxjava系列(二)-- 强大的操作符

rxjava强大的操作符,rxjava之所以如此强大、如此受开发者追捧,相信Operators是关键原因

http://blog.csdn.net/mo_android/article/details/73799773介绍了rxjava中的被观察者(Observable)、观察者(Subscriber)以及二者的实例化和绑定。这篇文章来总结下rxjava中强大的操作符。

1.何为操作符(Operators)

操作符是用来转换被观察者(Observable)对象的,操作符用于在被观察者(Observable)和最终的观察者(Subscriber)之间修改被观察者(Observable)发出的事件。

2.实例

定义是那么抽象,这里还是通过一些具体的操作符使用来理解rxjava操作符。

实例一 map()操作符
    private void test1(){
        Observable.just("Hello world")
                .map(new Func1<String, Integer>() {
                    @Override
                    public Integer call(String s) {
                        return s.hashCode();
                    }
                })
                .map(new Func1<Integer, String>() {
                    @Override
                    public String call(Integer integer) {
                        return integer.toString();
                    }
                })
                .subscribe(new Action1<String>() {
                    @Override
                    public void call(String s) {
                        System.out.println(s);
                    }
                });
    }

这样就可以实现链式调用,在一个Observable对象上多次使用map操作符,最终将最简洁的数据传递给Subscriber对象。上面实例,首先创建一个被观察者对象,通过map操作符会将字符串处理成整形code码,再通过map操作符会将整形code码转换为字符串,最后订阅观察者,观察者监听到了最终返回的code码转换成的字符串。
注意:这里用到一个Func1函数,其功能和Action1类似,比Action1多了返回值。

实例二 flatMap()操作符

将Observable发射的数据变换为Observables集合,然后将这些Observable发射的数据平坦化的放进一个单独的Observable,内部采用merge合并。

private void test2(){
        Observable.just("http://www.baidu.com/",
                    "http://www.google.com/",
                    "https://www.bing.com/")
                .flatMap(new Func1<String, Observable<String>>() {
                    @Override
                    public Observable<String> call(String s) {
                        return Observable.just(s);
                    }
                })
                .subscribe(new Action1<String>() {
                    @Override
                    public void call(String s) {
                        System.out.println(s);
                    }
                });
    }

关于操作符,这篇文章总结了非常完整的使用。
http://blog.csdn.net/maplejaw_/article/details/52396175

下篇文章我们将真正体验rxjava在Android开发中的应用。

欢迎大家留言讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值