iOS/RxSwift
replay : Observable이 항목을 방출하기 시작한 후 구독하더라도 모든 Observer가 동일한 방출 순서를 볼 수 있도록 보장 let helloMention = PublishSubject() let bird = helloMention.replay(1) // 개수 bird.connect() helloMention.onNext("1. Hello") helloMention.onNext("2. Hi") bird.subscribe(onNext: { print($0) // 2. Hi }) .disposed(by: disposeBag) helloMention.onNext("3. How are you") // 지나고 나면 무조건 출력 // 2. Hi // 3. How are you replayAll: 모든..
startwith : 초기 값을 받는지 여부, 우선순위로 맨 앞에 Element가 추가되고 위치의 제약을 받지 않음 let yellow = Observable.of("a", "b", "c") yellow .startWith("Teacher") .subscribe(onNext: { print($0) }) .disposed(by: disposeBag) // Teacher // a // b // c concat : Observable들을 연결 let yellow1 = Observable.of("a", "b", "c") let teacher1 = Observable.of("Teacher") let line = Observable .concat([teacher1, yellow1]) line.subscribe(on..
Single 일련의 element를 방출하는 대신 항상 단일 요소 또는 error를 방출하는 것을 보장하는 Observable의 변형 Observable.create{ observer -> Disposable in observer.onError(TraitsError.single) return Disposables.create() }.asSingle() .subscribe(onSuccess: { print($0) }, onFailure: { print("error : \($0.localizedDescription)") }, onDisposed: { print("disposed") } ).disposed(by: disposeBag) // error : The operation couldn’t be compl..
Subject observer(관찰자)와 Observable을 모두 수행할 수 있는 Class ※ 여기서 observer은 세부 정보를 저장, 코드를 한 번만 실행하고 모든 observer에 결과를 제공 PublishSubject - 빈 상태로 시작, 새로운 값만 subscriber에 방출 - Observable이 오류로 종료되면 PublishSubject 이후 subscriber에 가지 않고 Observable의 오류로 방출 let publishSubject = PublishSubject() publishSubject.onNext("1. 여러분 안녕하세요") let 구독자1 = publishSubject .subscribe(onNext: { print("첫 번째 구독자 : \($0)") }) publi..
Observable Rx에서 가장 중요한 요소이다. Swift에서 Sequence와 같다. Sequence | Apple Developer Documentation A type that provides sequential, iterated access to its elements. developer.apple.com Element들을 비동기적으로 수신할 수 있다는 장점이 있다. 반환된 반복자에서 next()를 호출하는 대신 Squence 요소를 수신하려면 Observer(callback)을 ObservableType.subscribe에 전달해야 된다. Observable들은 일정 기간 동안 계속해서 이벤트를 생성 Observable의 생명주기는 3가지 enum Event { case next(Elemen..