| Single | Maybe | Completable | |
|---|---|---|---|
| Type | ObservableType | ObservableType | ObservableType |
| 呼び出し | subscribe | subscribe | subscribe |
| onSuccess: | ○ | ○ | × |
| onCompleted: | × | ○ | ○ |
| onError: | ○ | ○ | ○ |
| PublishSubject | BehaviorSubject | ReplaySubject | Observable | |
|---|---|---|---|---|
| 初期値 | なし | あり | あり/なし | |
| Type | ObservableType ObserverType |
ObservableType ObserverType |
ObservableType ObserverType |
ObservableType |
| 値を流す | onNext: | onNext: | onNext: | - |
| 購読 | subscribe | subscribe | subscribe | subscribe |
| onNext: | ○ | ○ | ○ | ○ |
| onCompleted: | ○ | ○ | ○ | ○ |
| onError: | ○ | ○ | ○ | ○ |
| onDisposed: | ○ | ○ | ○ | ○ |
| 備考 | 今の状態を一回通知した上で変化があった場合それを通知する try? .value()で値にアクセスできる |
subscribe時に指定したbufferSize分の過去のeventを受け取れるSubject |
| PublishRelay | BehaviorRelay | |
|---|---|---|
| 初期値 | なし | あり |
| Type | ObservableType | ObservableType |
| 値を流す | accept | accept |
| 購読 | subscribe | subscribe |
| onNext: | ○ | ○ |
| onCompleted: | × | × |
| onError: | × | × |
| onDisposed: | ○ | ○ |
| 備考 | ・PublishSubjectのラッパー | ・BehaviorSubjectのラッパー ・.valueで値にアクセスできる |
| Driver | Signal | |
|---|---|---|
| Thread | main scheduler | main scheduler |
| Type | ObservableType | ObservableType |
| 値を流す | - | - |
| 購読 | drive | emit |
| onNext: | ○ | ○ |
| onCompleted: | ○ | ○ |
| onError: | × | × |
| onDisposed: | ○ | ○ |
| 備考 | ・購読直後に直近のイベントを流す ・Shares side effects (share(replay: 1, scope: .whileConnected)) |
・購読直後に直近の値を流さない |