RxJava学习笔记(三)

2017-03-23  本文已影响0人  弓长剑鸣

Map与FlatMap

map

map把 Observable 里的圆形一个个转换成方形,然后发射出去给 observer

map

flatMap

FlatMap 将一个发送事件的上游 Observable 变换为多个发送事件的 Observables ,然后将它们发射的事件合并后放进一个单独的 Observable 里

flatmap

动作分解

flatmap

//TODO 2.将获取token的观察者转换成获取user的观察者
Observable<UserAdapter> getUserObservable = getTokenObservable.flatMap(new Func1<String, Observable<User>>() {
@Override
public Observable<User> call(String token) {
return getUserObservable(token);//这里有一个获取UserObservable的方法
}
});

//TODO 3.观察者订阅获取user的被观察者
getUserObservable.subscribe(new Action1<User>() {
@Override
public void call(User user) {
//成功拿到user
}
});

//动作合并,更优雅的写法
getTokenObservable.flatMap(new Func1<String, Observable<User>>() {
            @Override
            public Observable<User> call(String token) {
                return getUserObservable(token);
            }
        }).subscribe(new Action1<User>() {
            @Override
            public void call(User userAdapter) {
                //成功拿到user
            }
        });
```
上一篇 下一篇

猜你喜欢

热点阅读