注册
iOS

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 操作符将对第一个元素应用一个函数。然后,将结果作为参数填入到第二个元素的应用函数中。以此类推,直到遍历完全部的元素后发出最终结果。

这种操作符在其他地方有时候被称作是 accumulatoraggregatecompressfold 或者 inject


演示

let disposeBag = DisposeBag()

Observable.of(10, 100, 1000)
.reduce(1, accumulator: +)
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)

输出结果:

1111

0 个评论

要回复文章请先登录注册