RxSwiftに新しく追加されたSingle, Maybe, Completable
RxSwift 3.3.0でRxJavaにインスパイアされた Single
、Maybe
、Completable
が追加されたので、使い所をかんがえて見た。
Single
性質
The 2.x Single reactive base type, which can emit a single onSuccess or onError has been redesigned from scratch.
1度だけ onSuccsess
または onError
が流れる。 onComplete
、 onNext
は流れない点に注意
public enum SingleEvent<Element> {
/// One and only sequence element is produced. (underlying observable sequence emits: `.next(Element)`, `.completed`)
case success(Element)
/// Sequence terminated with an error. (underlying observable sequence emits: `.error(Error)`)
case error(Swift.Error)
}
使い所
- レスポンスのあるAPIリクエスト
- プロミス的な使い方
- FirebaseのsingleEvent
Completable
性質
1度だけ 、onComplete
または onError
が流れる。
public enum CompletableEvent {
/// Sequence terminated with an error. (underlying observable sequence emits: `.error(Error)`)
case error(Swift.Error)
/// Sequence completed successfully.
case completed
}
使い所
- レスポンスボディの無いAPIリクエスト
Maybe
性質
Conceptually, it is a union of Single and Completable providing the means to capture an emission pattern where there could be 0 or 1 item or an error signalled by some reactive source.
SingleとCompleteが合わさったような性質。
1度だけ、アイテムかerrorが流れるか、または全くイベントが流れない。
(実装の際にはイベントが流れてこないことがある点も考慮が必要)
使い所
- 1回だけ表示したいイベントの条件とか?
所感
今までは1度しか流れてこないイベントもObservableで流しっぱなしで、
Sigle、Completableと1回しか流れてこないように明示的にできるのはとても良いなー( ˘ω˘)
参考
Release Hashimoto · ReactiveX/RxSwift
What's different in 2.0 · ReactiveX/RxJava Wiki
ReactiveX - Single
Author And Source
この問題について(RxSwiftに新しく追加されたSingle, Maybe, Completable), 我々は、より多くの情報をここで見つけました https://qiita.com/fu_nya/items/268299d3e8dfd822b146著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .