1. take(-:)

Untitled

example(of: "take") {
    Observable.of(1,2,3,4,5,6)
        .take(3)
        .subscribe{
            print($0)
        }.disposed(by: disposeBag)
}
/**
--- Example of:take---
next(1)
next(2)
next(3)
completed*/

2.take(while:)

특정 조건을 만족할때 까지 emit

Untitled

짝수이면서 index number가 5보다 작은 것들 만을 emit하는 조건 설정

example(of: "takeWhile") {
    Observable.of(2,2,4,4,6,6,2)
        .enumerated()
        .takeWhile{ index, element in
            print(index,element)
            return element % 2 == 0 && index<5
        }.map { element in
            element.element
        }.subscribe{
            print($0)
        }.disposed(by: disposeBag)
}
--- Example of:takeWhile---
0 2
next(2)
1 2
next(2)
2 4
next(4)
3 4
next(4)
4 6
next(6)
5 6
completed

3. takeLast()

완료가 되면 count만큼 이전의 이벤트 발생 → 마지막 n개의 이벤트를 방출함

Untitled

마지막으로 발생한 3개의 이벤트만 방출하도록 조건 설정

example(of: "takeLast") {
    Observable.of(1,2,3,4,5,6,7,8)
        .takeLast(3)
        .subscribe{
            print($0)
        }.disposed(by: disposeBag)
}
--- Example of:takeLast---
next(6)
next(7)
next(8)
completed