1) Single : 성공이냐, 실패냐를 따지는 one-time 일에 적합 (ex: 파일 다운로드, 디스크로딩)

typealias SingleEvent<Element> = Result<Element, Swift.Error>

 

2) Completable : single과 유사하지만 value를 emit하지 않음.
즉, 일이 제대로 됐는지만 검토할 때 사용 (ex: 파일 쓰기, alert)

enum CompletableEvent {
case error(Swift.Error)
case completed
}

 

3) Maybe : Single + Completable 

enum MaybeEvent<Element> {
case success(Element)
case error(Swift.Error)
case completed
}

※ success와 completed의 차이점

 - completed는 성공하지 못해도 언제나 호출되지만, success는 어떤 일을 성공적으로 마친 경우만 호출

 - completed는 value를 emit하지 않음. 즉, success(value) == next(value) + completed

 

 

+ Recent posts