RxSwift추가개념2-3
작성일
Skip
간단하게 말하면 건느 뛰는 것이다.
단, 여기에선 인덱스 번호가 아니라 개수를 적어주는 것이다.
import UIKit
import RxCocoa
import RxSwift
let disposeBag = DisposeBag()
Observable.of("A","B","C","D","E","F")
.skip(2)
.subscribe(onNext: {
print($0)
}).disposed(by: disposeBag)
출력해보면
C
D
E
F
이런식으로 앞에 2개를 건너뛰고 C부터 출력되는걸 볼 수 있다.
SkipWhile
특정 조건을 가진 값을 통과하기 전까지 스킵을 하고,
특정조건을 달성하면, 그뒤에껀 모두 출력을 한다.
import UIKit
import RxCocoa
import RxSwift
let disposeBag = DisposeBag()
Observable.of(2,2,3,4,4)
.skip(while: { $0 % 2 == 0 })
.subscribe(onNext: {
print($0)
}).disposed(by: disposeBag)
출력해보면,
3
4
4
이렇게 출력된다. 보면 0으로 나누어 떨어져서 3부터 3, 4, 4 가 출력되는 것이다.
SkipUntil
코드부터 살펴보면,
import UIKit
import RxCocoa
import RxSwift
let disposeBag = DisposeBag()
let subject = PublishSubject<String>()
let trigger = PublishSubject<String>()
subject.skip(until: trigger)
.subscribe(onNext:{
print($0)
}).disposed(by: disposeBag)
subject.onNext("A")
subject.onNext("B")
trigger.onNext("X")
subject.onNext("C")
subject.onNext("D")
trigger에 값이 추가되기 전까지 subject의 값은 출력되지 않는다.
trigger의 값이 추가되면 그때, subject의 값이 출력된다.
C
D
출력해본걸 보면 자세히알 수 있다.