본문 바로가기

ReactiveX11

[RxSwift] Operators - 오류 처리(5) Observable이 던진 오류를 복구할 수 있도록 도와주는 연산자들 - Catch, Retry 안녕하세요 ◠‿◠ 고고입니다. 1. Catch Catch — 오류를 무시하고 배출되는 항목들을 계속 진행시켜 'onError'로부터 전달된 오류를 복구한다 구현부 public func `catch`(_ handler: @escaping (Swift.Error) throws -> Observable) -> Observable { Catch(source: self.asObservable(), handler: handler) } 예시 let source = Observable.create { observer in for count in 1...3 { observer.on(.next(count)) } let erro.. 2021. 11. 20.
[RxSwift] Operators - 결합(4) 여러 개의 소스 Observable들을 하나의 Observable로 만드는 연산자들 - CombineLatest, merge, startwith, switch, zip, withLatestFrom, concat 안녕하세요 ◠‿◠ 고고입니다. 1. CombineLatest CombineLatest — 두 개의 Observable 중 하나가 항목을 배출할 때 배출된 마지막 항목과 다른 한 Observable이 배출한 항목을 결합한 후 함수를 적용하여 실행 후 실행된 결과를 배출한다 구현부 public static func combineLatest (_ source1: O1, _ source2: O2, resultSelector: @escaping (O1.Element, O2.Element) throws ->.. 2021. 11. 20.
[RxSwift] Operators - 필터링(3) 소스 Observable에서 선택적으로 항목을 배출하는 연산자들 - Debounce, Distinct, ElementAt, Filter, First, IgnoreElements, Sample, Skip, Take 안녕하세요 ◠‿◠ 고고입니다. 1. Debounce Debounce — Observable의 시간 흐름이 지속되는 상태에서 다른 항목들은 배출하지 않고 특정 시간 마다 그 시점에 존재하는 항목 하나를 Observable로부터 배출한다 구현부 public func debounce(_ dueTime: RxTimeInterval, scheduler: SchedulerType) -> Observable { return Debounce(source: self.asObservable(), dueTime: .. 2021. 11. 19.
[RxSwift] Operators - 변환(2) Observable이 배출한 항목들을 변환하는 연산자들 - Buffer, FlatMap, Groupby, map, scan, window 안녕하세요 ◠‿◠ 고고입니다. 1. Buffer Buffer — Observable로부터 정기적으로 항목들을 수집하고 묶음으로 만든 후에 묶음 안에 있는 항목들을 한번에 하나씩 배출하지 않고 수집된 묶음 단위로 배출한다 구현부 public func buffer(timeSpan: RxTimeInterval, count: Int, scheduler: SchedulerType) -> Observable { BufferTimeCount(source: self.asObservable(), timeSpan: timeSpan, count: count, scheduler: sched.. 2021. 11. 19.
[RxSwift] Opeators - 생성(1) 새로운 Observable을 만드는 연산자들 - Create, Deffered, Empty, Never, error, from, interval, just, range, repeat, start, timer 안녕하세요 ◠‿◠ 고고입니다. 1. Create Create — 직접적인 코드 구현을 통해 옵저버 메서드를 호출하여 Observable을 생성한다 구현부 public static func create(_ subscribe: @escaping (AnyObserver) -> Disposable) -> Observable { AnonymousObservable(subscribe) } 예시: let source : Observable = Observable.create { observer in for i i.. 2021. 11. 19.