介绍
只是慕客网 RxJava 学习笔记,个人复习使用
lift 操作符
我们这里先抛出概念
- 接口原OnSubscribe和当前的Operator
- 创建一个新的OnSubscriber并返回新的Observable
- 用新的 Subscriber 包裹旧的 Subscriber
- 在新的 Subscriber 力做完变换后再传给旧的Subscriber
小案例
Subscription subscription = Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
if (!subscriber.isUnsubscribed()) {
subscriber.onNext("1");
subscriber.onNext("2");
subscriber.onCompleted();
}
}
}).map(new Func1<String, Integer>() {
@Override
public Integer call(String s) {
return Integer.valueOf(s);
}
}).subscribe(new Observer<Integer>() {
@Override
public void onCompleted() {
System.out.println("onCompleted");
}
@Override
public void onError(Throwable e) {
e.printStackTrace();
System.out.println("onError");
}
@Override
public void onNext(Integer s) {
System.out.println("onNext:" + s);
}
});
执行流程分析
源码自己分析,我们这里主要罗列下逻辑图
https://www.processon.com/view/link/5afcdd73e4b096c6eeb4b443