标签:image ext upload print auto 组合 pos 元素 ring
如果源 Observable 在规定时间内没有发出任何元素,就产生一个超时的 error 事件
如果 Observable 在一段时间内没有产生元素,timeout 操作符将使它发出一个 error 事件。
创建一个 Observable 在一段延时后,产生唯一的一个元素
timer 操作符将创建一个 Observable,它在经过设定的一段时间后,产生唯一的一个元素。
这里存在其他版本的 timer 操作符。
创建一个 Observable 在一段延时后,每隔一段时间产生一个元素
public static func timer(
_ dueTime: RxTimeInterval, // 初始延时
period: RxTimeInterval?, // 时间间隔
scheduler: SchedulerType
) -> Observable<E>
创建一个可被清除的资源,它和 Observable 具有相同的寿命
通过使用 using 操作符创建 Observable 时,同时创建一个可被清除的资源,一旦 Observable 终止了,那么这个资源就会被清除掉了。
将 Observable 分解为多个子 Observable,周期性的将子 Observable 发出来
window 操作符和 buffer 十分相似,buffer 周期性的将缓存的元素集合发送出来,而 window 周期性的将元素集合以 Observable 的形态发送出来。
buffer 要等到元素搜集完毕后,才会发出元素序列。而 window 可以实时发出元素序列。
将两个 Observables 最新的元素通过一个函数组合起来,当第一个 Observable 发出一个元素,就将组合后的元素发送出来
withLatestFrom 操作符将两个 Observables 中最新的元素通过一个函数组合起来,然后将这个组合的结果发出来。当第一个 Observable 发出一个元素时,就立即取出第二个 Observable 中最新的元素,通过一个组合函数将两个最新的元素合并后发送出去。
当第一个 Observable 发出一个元素时,就立即取出第二个 Observable 中最新的元素,然后把第二个 Observable 中最新的元素发送出去。
let disposeBag = DisposeBag()
let firstSubject = PublishSubject<String>()
let secondSubject = PublishSubject<String>()
firstSubject
.withLatestFrom(secondSubject)
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)
firstSubject.onNext("???")
firstSubject.onNext("???")
secondSubject.onNext("1")
secondSubject.onNext("2")
firstSubject.onNext("??")
当第一个 Observable 发出一个元素时,就立即取出第二个 Observable 中最新的元素,将第一个 Observable 中最新的元素 first 和第二个 Observable 中最新的元素second组合,然后把组合结果 first+second发送出去。
let disposeBag = DisposeBag()
let firstSubject = PublishSubject<String>()
let secondSubject = PublishSubject<String>()
firstSubject
.withLatestFrom(secondSubject) {
(first, second) in
return first + second
}
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)
firstSubject.onNext("???")
firstSubject.onNext("???")
secondSubject.onNext("1")
secondSubject.onNext("2")
firstSubject.onNext("??")
通过一个函数将多个 Observables 的元素组合起来,然后将每一个组合的结果发出来
zip 操作符将多个(最多不超过8个) Observables 的元素通过一个函数组合起来,然后将这个组合的结果发出来。它会严格的按照序列的索引数进行组合。例如,返回的 Observable 的第一个元素,是由每一个源 Observables 的第一个元素组合出来的。它的第二个元素 ,是由每一个源 Observables 的第二个元素组合出来的。它的第三个元素 ,是由每一个源 Observables 的第三个元素组合出来的,以此类推。它的元素数量等于源 Observables 中元素数量最少的那个。
let disposeBag = DisposeBag()
let first = PublishSubject<String>()
let second = PublishSubject<String>()
Observable.zip(first, second) { $0 + $1 }
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)
first.onNext("1")
second.onNext("A")
first.onNext("2")
second.onNext("B")
second.onNext("C")
second.onNext("D")
first.onNext("3")
first.onNext("4")
标签:image ext upload print auto 组合 pos 元素 ring
原文地址:https://www.cnblogs.com/liuxiaokun/p/12683800.html