티스토리 뷰
안녕하세요 Hani입니다.
이번엔 Observable의 event중 조건에 맞는 것만 뽑아오는 operator를 알아보겠습니다.
시작 😊
Debounce
특정 시간(x)동안 아무런 item이 추가로 들어오지 않으면, 가장 마지막으로 들어온 item를 방출하는 Debounce입니다.
예를 들면, 버튼을 광클하고 특정 시간이 지나면 마지막 클릭 이벤트만 받아들이게 됩니다.
DistinctUntilChanged
기본적으로는 연속적으로 같은 item을 방출하지 않도록 item이 distinct한 Observable을 만들어주는 distinct입니다.
item이 distinct하다는 기준을 위와 같이 다르게 설정할 수도 있습니다.
ElementAt
n번째 item만 방출하는 ElementAt입니다.
Filter
조건을 만족시키는 item만 방출하는 Observable을 만드는 Filter입니다.
First
첫번째 event만 방출하고 바로 종료되는 Observable을 만드는 First입니다.
IgnoreElements
IgnoreElements는 Observable의 onNext item를 무시하고, onError와 onCompleted notification만 허용합니다.
Skip
Observable이 방출하는 처음 n개의 item를 무시하는 Observable을 만드는 skip입니다.
뒤에 비교할 operator를 위해서 몇 가지 기억할 점은
처음 n개의 item가 무시되기 때문에 반환되는 Observable의 앞쪽이 비어있다는 것..
그리고 notification의 시점이 유지된다는 것입니다.
SkipLast
Observable이 방출하는 마지막 n개의 item를 무시하는 Observable을 만드는 skipLast입니다.
마지막 n개의 item가 무시되지만 Marble의 간격이나 시점이 기존 Observable의 마지막 Marble들을 따르고 있습니다.
Take
Observable이 방출하는 처음 n개의 item만을 방출하는 Observable을 만드는 take입니다.
마지막 item이 방출됨과 동시에 notification이 일어납니다.
TakeLast
Observable이 방출하는 마지막 n개의 item만을 방출하는 Observable을 만드는 takeLast입니다.
기존 Observable의 종료 시점에 맞춰 item이 방출됩니다.
음.. 사실 공식문서를 더 깊게 읽어보면 더 큰 차이점이 보이긴 해요. 😅
take(1), elementAt(0), first()의 차이라든지..!
하지만 일단은 훑어보는 과정이기 때문에 지금은 자세하게 들어가진 않을게요.
아직은 나뭇잎 말고 숲을 보는 마음으로 😎
References
http://reactivex.io/documentation/operators.html
'RxSwift' 카테고리의 다른 글
[RxSwift] subscribe, observe / Scheduler 관리 (0) | 2021.07.11 |
---|---|
[RxSwift] Closure ARC / Memory Leak 실험 (0) | 2021.07.10 |
[RxSwift] Subject (0) | 2021.07.07 |
[RxSwift] Operator, Create Observables (0) | 2021.06.28 |
[RxSwift] Observable, Subscribe (0) | 2021.06.25 |
- Total
- Today
- Yesterday
- 코딩대회
- 최단경로 알고리즘
- 벨만포드 시간복잡도
- 벨만포드 알고리즘
- State Restoration
- IOS
- 다익스트라 시간복잡도
- 에드몬드 카프 알고리즘
- 부스트캠프 6기
- 포드 풀커슨 알고리즘
- 최단경로 문제
- 최단경로문제
- WWDC21
- 네트워크 유량
- HIG
- 강한 순환 참조
- rxswift
- WWDC17
- CPU와 Memory
- test coverage
- WWDC19
- observeOn
- MeTal
- WWDC16
- 네트워크 플로우
- Testable
- 컴퓨터 추상화
- 최대 매칭
- mach-o
- CompositionalLayout
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |