注册
iOS

iOS RXSwift 5.9

materialize

将序列产生的事件,转换成元素

通常,一个有限的 Observable 将产生零个或者多个 onNext 事件,然后产生一个 onCompleted 或者 onError 事件。

materialize 操作符将 Observable 产生的这些事件全部转换成元素,然后发送出来。

merge

将多个 Observables 合并成一个

通过使用 merge 操作符你可以将多个 Observables 合并成一个,当某一个 Observable 发出一个元素时,他就将这个元素发出。

如果,某一个 Observable 发出一个 onError 事件,那么被合并的 Observable 也会将它发出,并且立即终止序列。


演示

let disposeBag = DisposeBag()

let subject1 = PublishSubject<String>()
let subject2 = PublishSubject<String>()

Observable.of(subject1, subject2)
.merge()
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)

subject1.onNext("🅰️")

subject1.onNext("🅱️")

subject2.onNext("①")

subject2.onNext("②")

subject1.onNext("🆎")

subject2.onNext("③")

输出结果:

🅰️
🅱️


🆎

map

通过一个转换函数,将 Observable 的每个元素转换一遍

map 操作符将源 Observable 的每个元素应用你提供的转换方法,然后返回含有转换结果的 Observable


演示

let disposeBag = DisposeBag()
Observable.of(1, 2, 3)
.map { $0 * 10 }
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)

输出结果:

10
20
30

参考

just

创建 Observable 发出唯一的一个元素

just 操作符将某一个元素转换为 Observable


演示

一个序列只有唯一的元素 0

let id = Observable.just(0)

它相当于:

let id = Observable<Int>.create { observer in
observer.onNext(0)
observer.onCompleted()
return Disposables.create()
}

interval

创建一个 Observable 每隔一段时间,发出一个索引数

interval 操作符将创建一个 Observable,它每隔一段设定的时间,发出一个索引数的元素。它将发出无数个元素。

ignoreElements

忽略掉所有的元素,只发出 error 或 completed 事件

ignoreElements 操作符将阻止 Observable 发出 next 事件,但是允许他发出 error 或 completed 事件。

如果你并不关心 Observable 的任何元素,你只想知道 Observable 在什么时候终止,那就可以使用 ignoreElements 操作符。

0 个评论

要回复文章请先登录注册