Operator는 Observable에서 받은 이벤트들을 변환하고 처리할 수 있는 메소드들이다.
Operator의 종류로는 Filtering Operator
, Transforming Operator
, Combining Operator
가 있다.
next
이벤트를 통해 받아오는 값을 선택적으로 가질 수 있다.
조건식에 부합하는 이벤트만 방출한다.
n개의 이벤트를 skip한다.
조건식을 만족할 때 까지 skip하고 종료한다.
n개의 이벤트만 방출하고 complete한다.
조건식을 만족하지 않는 이벤트까지 방출하고 종료한다.
연달아 같은 값이 방출될 때 중복된 값을 막아준다.
특정 시간동안 발생한 이벤트 중 가장 최신의 이벤트를 방출한다.
Observable을 변형하는 Operator이다.
이벤틀를 다른 이벤트로 변형한다.
이벤트 시퀀스를 다른 이벤트 시퀀스로 변형한다. Observable의 이벤트를 받아 새로운 Observable로 변환한다.
flatMap에서 가장 최신의 값만을 확인하고 싶을 때 사용한다. 이벤트가 들어오면 새로운 Observable을 만들지만, 새로운 Observable을 생성하면 이전의 Observable 구독을 자동으로 해지한다.
flatMapLatest()와 반대로 이전에 생성한 Observable의 동작이 다 끝날 때 까지 새로 생성한 Observable은 무시한다.
시퀀스들을 모으고 각 시퀀스 내의 데이터를 병합하는 Operator이다.
let first = Observable.of(1, 2, 3)
let second = Observable.of(4, 5, 6)
let observable = Observable.concat([first, second])
let observable = first.concat(second) // 같은 타입일 때만 가능
let first = Observable.of(1, 2, 3)
let second = Observable.of(4, 5, 6)
let disposeBag = DisposeBag()
Observable.merge(first, second)
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)
한쪽 Observable의 이벤트가 발생할 때 두 개의 Observable을 병합한다.