[RxSwift] Take
역할
Observable
에서 내보낸 아이템 중, 처음 n개의 아이템만 내보냅니다.
예제
Observable.of(1,2,3,4)
.take(2)
.debug()
.subscribe()
[실행 결과]
-> subscribed
-> Event next(1)
-> Event next(2)
-> Event completed
-> isDisposed
구독 후 Observable
의 아이템 1, 2, 3, 4 를 모두 내보내는 것이 아니라 그중 처음 2개 아이템인 1과 2만 내보낸 후 종료되는 것을 확인할 수 있습니다.
활용
주로 단 1개의 아이템만 내보내는 것을 보장하기 위해 take(1)
형태로 사용됩니다.
아이템이 여러번 방출될 수 있는 Observable
에서 한번만 방출 되도록 제한하거나, 다음과 같이 flatMap
에서 새로운 Observable
이 생성될 때 한번만 생성되도록 조합해 사용합니다.
Observable
.flatMap { anotherObservable.take(1) }
[참 고]