RxSwift 总结

RxSwift 总结
最新回答
唯美╮似夏花

2021-01-21 00:04:11

分为普通序列和特征序列

1、just()
Observable<Int>.just(5) 发出一个5
2、of()
Observable.of("a","b","c") 可变参数同一类型
3、from()
Observable.from(["a","b","c"]) 需要一个数组
4、empty()

5、never()
永远不会发出
6、error()
Observable<Int>.error(myError.errorA)
需要一个Error类型参数
7、range()
Observable.range(start: 1, count: 5)
范围值
8、repeatElement()
Observable.repeatElement(1)
无限发出给定元素的event (永不终止)
9、generate()

条件判断
10、create()
block创建

11、deferred()
创建一个工厂

12、interval()
创建一个 Observable 每隔一段时间,发出一个索引数

13、timer()

1、Single()

2、Completable()

3、Maybe()

4、Driver()---->(用于UI事件)

5、Signal()

6、ControlEvent
专门用于描述 UI 控件所产生的事件,具有以下特征:

创建观察者最直接的方法就是在 Observable 的 subscribe 方法后面描述,事件发生时,需要如何做出响应。而观察者就是由后面的 onNext,onError,onCompleted的这些闭包构建出来的。
还可以以下方式:
1、AnyObserver
AnyObserver 可以用来描叙任意一种观察者。

2、Binder

1、AsyncSubject
AsyncSubject 将在源 Observable 产生完成事件后,发出最后一个元素(仅仅只有最后一个元素),如果源 Observable 没有发出任何元素,只有一个完成事件。那 AsyncSubject 也只有一个完成事件。
它会对随后的观察者发出最终元素。如果源 Observable 因为产生了一个 error 事件而中止, AsyncSubject 就不会发出任何元素,而是将这个 error 事件发送出来。
2、PublishSubject
PublishSubject 将对观察者发送订阅后产生的元素,而在订阅前发出的元素将不会发送给观察者。
3、ReplaySubject
ReplaySubject 将对观察者发送全部的元素,无论观察者是何时进行订阅的。
4、BehaviorSubject
当观察者对 BehaviorSubject 进行订阅时,它会将源 Observable 中最新的元素发送出来(如果不存在最新的元素,就发出默认元素)。然后将随后产生的元素发送出来。
如果源 Observable 因为产生了一个 error 事件而中止, BehaviorSubject 就不会发出任何元素,而是将这个 error 事件发送出来。
5、ControlProperty
ControlProperty 专门用于描述 UI 控件属性的,它具有以下特征:

RxRelay 既是 可监听序列 也是 观察者 使用accept代替onNext。
他和 Subjects 相似,唯一的区别是不会接受 onError onCompleted 这样的终止事件。
1、PublishRelay
PublishRelay 就是 PublishSubject 去掉终止事件 onError 或 onCompleted 。
2、BehaviorRelay
BehaviorRelay 就是 BehaviorSubject 去掉终止事件 onError 或 onCompleted 。

操作符可以帮助大家创建新的序列,或者变化组合原有的序列,从而生成一个新的序列。

输出结果