iOS RXSwift 5.10
repeatElement
创建 Observable
重复的发出某个元素
repeatElement 操作符将创建一个 Observable
,这个 Observable
将无止尽的发出同一个元素。
演示
创建 Observable
重复的发出某个元素:
let id = Observable.repeatElement(0)
它相当于:
let id = Observable<Int>.create { observer in
observer.onNext(0)
observer.onNext(0)
observer.onNext(0)
observer.onNext(0)
... // 无数次
return Disposables.create()
}
refCount
将可被连接的 Observable
转换为普通 Observable
可被连接的 Observable
和普通的 Observable
十分相似,不过在被订阅后不会发出元素,直到 connect 操作符被应用为止。这样一来你可以控制 Observable
在什么时候开始发出元素。
refCount 操作符将自动连接和断开可被连接的 Observable
。它将可被连接的 Observable
转换为普通 Observable
。当第一个观察者对它订阅时,那么底层的 Observable
将被连接。当最后一个观察者离开时,那么底层的 Observable
将被断开连接。
reduce
持续的将 Observable
的每一个元素应用一个函数,然后发出最终结果
reduce 操作符将对第一个元素应用一个函数。然后,将结果作为参数填入到第二个元素的应用函数中。以此类推,直到遍历完全部的元素后发出最终结果。
这种操作符在其他地方有时候被称作是 accumulator,aggregate,compress,fold 或者 inject。
演示
let disposeBag = DisposeBag()
Observable.of(10, 100, 1000)
.reduce(1, accumulator: +)
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)
输出结果:
1111