iOS RXSwift 5.5
deferred
直到订阅发生,才创建 Observable
,并且为每位订阅者创建全新的 Observable
deferred 操作符将等待观察者订阅它,才创建一个 Observable
,它会通过一个构建函数为每一位订阅者创建新的 Observable
。看上去每位订阅者都是对同一个 Observable
产生订阅,实际上它们都获得了独立的序列。
在一些情况下,直到订阅时才创建 Observable
是可以保证拿到的数据都是最新的。
debug
打印所有的订阅,事件以及销毁信息
演示
let disposeBag = DisposeBag()
let sequence = Observable<String>.create { observer in
observer.onNext("🍎")
observer.onNext("🍐")
observer.onCompleted()
return Disposables.create()
}
sequence
.debug("Fruit")
.subscribe()
.disposed(by: disposeBag)
输出结果:
2017-11-06 20:49:43.187: Fruit -> subscribed
2017-11-06 20:49:43.188: Fruit -> Event next(🍎)
2017-11-06 20:49:43.188: Fruit -> Event next(🍐)
2017-11-06 20:49:43.188: Fruit -> Event completed
2017-11-06 20:49:43.189: Fruit -> isDisposed
debounce
过滤掉高频产生的元素
debounce 操作符将发出这种元素,在 Observable
产生这种元素后,一段时间内没有新元素产生。