RxSwift文档上给出的操作符将近60个,这篇来看一下和Observable创建有关的。
| 操作符 | 描述 |
|---|---|
| create | 创建一个完整的 Observable可以发送next,error,completed事件 |
| empty | 创建一个空Observable,只有一个completed事件 |
| never | 创建一个 Observable,这个 Observable 不会产生任何事件 |
| repeatElement | 创建 Observable 重复的发出同一个元素 |
| from | 将其他类型(array,Sequence)转换为 Observable |
| of | 将其他类型(elements)转换为 Observable |
-
create
通过一个构建函数完整的创建一个 Observable,在构建函数里面描述事件(next,error,completed)的产生过程。

let observable = Observable<Int>.create { observer in
observer.onNext(0)
observer.onNext(1)
observer.onNext(2)
observer.onCompleted()
return Disposables.create()
}
-
empty
创建一个空Observable,只有一个completed事件。

let id = Observable<Int>.empty()
想当于:
let id = Observable<Int>.create { observer in
observer.onCompleted()
return Disposables.create()
}
-
never
创建一个 Observable,这个 Observable 不会产生任何事件。

let id = Observable<Int>.never()
相当于:
let id = Observable<Int>.create { observer in
return Disposables.create()
}
-
just
创建 Observable 发出唯一的一个元素

let id = Observable.just(0)
相当于:
let id = Observable<Int>.create { observer in
observer.onNext(0)
observer.onCompleted()
return Disposables.create()
}
-
repeatElement

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()
}
-
from
-
of
在使用 Observable 时,如果能够直接将其他类型转换为 Observable.

let numbers = Observable.from([0, 1, 2])
相当于
let numbers = Observable.from(0, 1, 2)
相当于
let numbers = Observable<Int>.create { observer in
observer.onNext(0)
observer.onNext(1)
observer.onNext(2)
observer.onCompleted()
return Disposables.create()
}
of接元素from接数组或序列