Single 使用
Flowable 比较重一般使用Single
onSubscribe 产生订阅时调用
线程切换1
2
发送顺序事件.just
just 源码
钩子方法,进行验证再处理
Single 对象
订阅,RxJavaPlugins.onSubscribe 钩子方法,产生订阅和过滤
Single 核心方法,抽象的,实现为SingleJust
订阅和执行成功回调,disposed 表示丢弃,顺时完成,一产生订阅就执行成功
Disposable 枚举类
Single.just 流程图
操作符 map 转换
源码,先判断是否为Null,然后通过钩子方法进行绑定处理
source 源数据,map 接口
创建订阅,然后通过内部对象进行操作
将数据进行转换然后发送给下游
把订阅的事件交给我们创建的下游
产生订阅和错误直接让下游处理,成功则进行apply转换再进行转发
上游先产生订阅,通过MapSingeleObserver进行订阅自身的内部对象
取消事件则是停止上游产生消息断开上游的联系,判断是否是新创建的还是生成的
Single.just则是无延迟和后续
Observable.just则是无延迟,有后续
Observable.interval 则是有延迟有后续
间隔一秒执行
源码:
subscribeActural
is是内部对象
实现了Disable,继承了AtomicRefrence 线程安全的引用,可取消,线程安全,同样也是一个Runnable
每隔一个单位就调用run
在后台线程每隔时间单位执行
调用内部的dispose,如果没有取消则进行取消
把内部值设置为传入的值,如果已经设置过不为null则不进行设置
如果进行dispose,则用内部传入的值进行dispose
通过内部进行挂接,连接操作
没有延时的Single则不再产生消息,然后不再计算,其他的则通过内部挂接进行操作
有上游的则不同,判断有没有延时
SingleObserver
上游
Dispose