RxSwift
[RxSwift] Filtering Operators (Ignoring)
thoonk:
2021. 5. 11. 13:43
반응형
Filtering Operators 중 Ignoring Operators에 관해 정리한 내용을 기록하겠습니다.
Ignoring Operators
1. IgnoreElements
- 어떠한 이벤트도 방출하지 않는다. -> .next를 무시한다.
- .completed 또는 .error 와 같은 이벤트는 허용한다.
let data = PublishSubject<Int>()
let bag = DisposeBag()
data
.ignoreElements()
.subscribe({ _ in
print("Event is Emitted.")
})
.disposed(by: bag)
// onNext 이벤트들 무시됨
data.onNext(1)
data.onNext(2)
data.onNext(3)
// Completed 호출되고 Event is Emitted. 출력됨
data.onCompleted()
2. ElementAt
- n번째 요소만 이벤트를 방출하고 나머지는 무시한다.
let data = PublishSubject<Int>()
let bag = DisposeBag()
data
.element(at: 2)
.subscribe(onNext: { data in
print("Number \(data) is emitted")
})
.disposed(by: bag)
data.onNext(0)
data.onNext(1)
data.onNext(2)
// Number 2 is emitted
// 0, 1은 무시하고 2의 이벤트만 방출됨
3. Filter
- 지정한 조건식에 따라 필터링하여 방출한다.
let bag = DisposeBag()
Observable.of(2,30,22,5,60,1)
.filter({ x -> Bool in
x > 10
})
.subscribe(onNext: { x in
print(x)
})
.disposed(by: bag)
// 30 22 60
// 10보다 큰 요소의 이벤트들만 방출된다.
부족한 점 피드백해주시면 감사하겠습니다👍
참고:
github.com/fimuxd/RxSwift/blob/master/Lectures/05_Filtering%20Operators/Ch5.%20FilteringOperators.md
반응형