Rxjava2.X的一些讲解
rxjava是什么?
总结一句话就是 异步切换操作的工具
Rxjava常用的一些操作符
1.concat(英文翻译为连接的意思)
就是将多个Observable(上游发送器又名被观察者)统一起来按顺序返回一个Observable
下面是源码的一重要部分,返回的是一个T类型,所以两个被观察者的返回的类型应该是一样的,或者可以传入一个Object
如下图所示,创建两个Observable
然后用concat连接起来
如果Text(12)这样打印的结构会是什么呢?
没错只走了第一个Observable,因为他只有等第一个执行完onnext()并且执行onComplete()方法后第二个才会执行
我们验证一些
看下打印结果
并且observer(下游又名观察者)onComplete()方法是又最后一个Observable所调用的
2.map()操作符,用来转换返回结果值的
传入一个function(传入的值,需要转换为的值)
Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe(ObservableEmitter<String> e) throws Exception { e.onNext("234"); } }).map(new Function<String, Integer>() { @Override public Integer apply(String s) throws Exception { if (s.equals("234")){ return 3; }else{ return 5; } } }).subscribe(new Observer<Integer>() { @Override public void onSubscribe(Disposable d) { System.out.println("Disposable == " + d.isDisposed()); } @Override public void onNext(Integer integer) { System.out.println("onNext == " + integer); } @Override public void onError(Throwable e) { } @Override public void onComplete() { System.out.println("onComplete == "); } });
我们看下打印的结果是什么
没错转换了,这就是map转换器的作用
大家可能看到
这是是干嘛的呢?
取消订阅的功能