take

  • Observable 中發出頭 n 個元素,忽略後面的元素直到序列結束。
let disposeBag = DisposeBag()

Observable.of("🐱", "🐰", "🐶", "🐸", "🐷", "🐵")
    .take(3)
    .subscribe(onNext: { print($0) })
    .disposed(by: disposeBag)

印出結果

🐱
🐰
🐶

distinctUntilChanged

  • 阻止 Observable 發出相同的元素。如果後一個元素和前一個元素相同,將不會發出來,若後一個元素和前一個元素不同才會被發出來。
let disposeBag = DisposeBag()

Observable.of("🐱", "🐷", "🐱", "🐱", "🐱", "🐵", "🐱")
    .distinctUntilChanged()
    .subscribe(onNext: { print($0) })
    .disposed(by: disposeBag)

印出結果

🐱
🐷
🐱
🐵
🐱