IgnoreElements


📚 개념

  • ignoreElements()는 기존의 elements를 무시하고 onCompleted()를 실행한다.
  • subscribe를 실행하기 전에 ignoreElements()가 실행되어 onNext() 호출은 실패한다.

✏️ 예시) IgnoreElements 사용방법

// 실행코드
let strikes = PublishSubject<String>()
let disposeBag = DisposeBag()

strikes
    .ignoreElements()
    .subscribe { _ in
        print("[Subscription is called]")
        /* onCompleted()까지 ignore가 아니기때문에
        [Subscription is called] 만이 출력된다. */
    }.disposed(by: disposeBag)

strikes.onNext("A")
strikes.onNext("B")
strikes.onNext("C")
strikes.onCompleted()
// 결과
[Subscription is called]

🏷 참고 사이트






ElementsAt


📚 개념

  • elementAt(index)는 index 위치의 값을 return한다.

✏️ 예시) ElementsAt 사용방법

// 실행코드
strikes.elementAt(2) /* 세번째 인자가 들어오기 전까지는
						'You are out!'이 출력되지 않는다.*/
    .subscribe(onNext: { _ in
        print("You are out!")
    }).disposed(by: disposeBag)

strikes.onNext("X")
strikes.onNext("X")
strikes.onNext("X")
// 결과
You are out!

🏷 참고 사이트






Filter


📚 개념

  • 조건에 따라 elements를 반환한다.

✏️ 예시) Filter 사용방법

// 실행코드
let disposeBag = DisposeBag()

Observable.of(1, 2, 3, 4, 5, 6, 7)
    .filter { $0 % 2 == 0 }
    .subscribe(onNext: {
        print($0)
    }).disposed(by: disposeBag)
// 결과
2
4
6

🏷 참고 사이트






Skip


📚 개념

  • skip의 갯수에 따라 elements를 건너뛰어 나머지를 return한다.

✏️ 예시) Skip 사용방법

// 실행코드
let disposeBag = DisposeBag()

Observable.of("A", "B", "C", "D", "E", "F")
    .skip(3)
    .subscribe(onNext: {
        print($0)
    }).disposed(by: disposeBag)
// 결과
D
E
F

🏷 참고 사이트






SkipWhile


📚 개념

  • 조건을 만족하는 동안 elements를 건너뛰어 나머지를 return한다.

✏️ 예시) SkipWhile 사용방법

// 실행코드
let disposeBag = DisposeBag()

Observable.of(2, 1, 2, 3, 4, 4)
    .skipWhile { $0 % 2 == 0 }
    .subscribe(onNext: {
        print($0)
    }).disposed(by: disposeBag)
// 결과
1
2
3
4
4

🏷 참고 사이트






SkipUntil


📚 개념

  • 특정 trigger를 걸어 이벤트가 발생하기 전까지 skip해버린다.

✏️ 예시) SkipUntil 사용방법

// 실행코드
let disposeBag = DisposeBag()
let subject = PublishSubject<String>()
let trigger = PublishSubject<String>()

subject.skipUntil(trigger) // trigger에 이벤트가 발생하기 전까지 skip한다.
    .subscribe(onNext: {
        print($0)
    }).disposed(by: disposeBag)

subject.onNext("A")
subject.onNext("B")

trigger.onNext("X") // 트리거 걸기

subject.onNext("C") // 출력
// 결과
C

🏷 참고 사이트






Take


📚 개념

  • count 수만큼 elements가 순차적으로 출력된다.

✏️ 예시) Take 사용방법

// 실행코드
let disposeBag = DisposeBag()

Observable.of(1, 2, 3, 4, 5, 6)
    .take(3)
    .subscribe(onNext: {
        print($0)
    }).disposed(by: disposeBag)
// 결과
1
2
3

🏷 참고 사이트






TakeWhile


📚 개념

  • 조건을 만족하는동안의 elements를 return한다.
  • return은 미사용해도 무관하다.

✏️ 예시) TakeWhile 사용방법

// 실행코드
let disposeBag = DisposeBag()

Observable.of(2, 4, 6, 7, 8, 10)
    .takeWhile { return $0 % 2 == 0 }
    .subscribe(onNext: {
        print($0)
    }).disposed(by: disposeBag)
// 결과
2
4
6

🏷 참고 사이트






TakeUntil


📚 개념

  • trigger 이벤트가 발생하기전 onNext()를 호출한다.

✏️ 예시) TakeUntil 사용방법

// 실행코드
let disposeBag = DisposeBag()
let subject = PublishSubject<String>()
let trigger = PublishSubject<String>()

subject.takeUntil(trigger)
    .subscribe(onNext: {
        print($0)
    }).disposed(by: disposeBag)

subject.onNext("A")
subject.onNext("B")

trigger.onNext("X")

subject.onNext("C")
// 결과
A
B

🏷 참고 사이트



💥 공부를 위한 정리글이기 때문에 잘못된 부분이 있을 수 있습니다. 💥

profile
우당탕탕 지니

0개의 댓글