fimuxd/RxSwift를 참고해 정리하는 글입니다 🙂
시간의 흐름에 따라 데이터가 변동되는 것을 확인하기
Connectable한 Observable이 구독자에게 item을 방출하도록 함
Observable이 방출을 시작한 후 구독하더라고 모든 observer가 방출된 시퀀스를 볼 수 있도록 합니다.
replay(1)
- buffer의 크기(보여준 이전 item 개수)를 지정해줌let observable = Observable<Int>
.interval(.seconds(1), scheduler: MainScheduler.instance)
.replay(3)
observable.connect()
observable.subscribe(onNext: { num in
print("First Num is \(num)")
}).disposed(by:disposeBag)
observable.delaySubscription(.seconds(4), scheduler: MainScheduler.instance)
.subscribe(onNext: { num in
print("Second Num is \(num)")
}).disposed(by:disposeBag)
Observable이 방출하는 item을 주기적으로 수집하고 item이 아닌 번들로 방출
buffer(timeSpan:cout:scheduler:)
window는 buffer와 유사하지만 item을 다시 방출하기 전 데이터 구조가 아닌 별도의 Observable로 수집
Observable<[Element]>
, Window - Observable<Observable<Element>>
flatMap
연산자와 함께 사용될 수 있음특정 양만큼 Observable에서 방출을 지연
주어진 시간 간격으로 일련의 정수를 방출하는 Observable
주어진 만큼 지연 후에 특정 item을 방출하는 Observable을 생성
원본 Observable을 미러링하지만 방출된 항복 없이 특정 기간이 경과하면 오류를 방출