ブール演算子の動作条件と

とともに

  • 複数の観察可能AMBオペレータに着信すると、彼はその後にのみ観察可能な他の。彼の要素を発行し、無視し、最初の要素の発生や生産観察可能な事象がかかります
let subject191 = PublishSubject<Int>()
let subject192 = PublishSubject<Int>()
let subject193 = PublishSubject<Int>()

subject191
    .amb(subject192)
    .amb(subject193)
    .subscribe(onNext: { print($0) })
    .disposed(by: bag)

subject192.onNext(0)
subject191.onNext(50)
subject192.onNext(1)
subject193.onNext(101)
subject193.onNext(102)
subject191.onNext(51)
subject192.onNext(2)
subject193.onNext(103)

takeWhile

  • 順番にどの与えられた条件が満たされているかどうかを観察可能な各シーケンスの値を決定する。値は、ローカルな外観の条件を満たしていない場合は、自動的に彼
Observable.of(1,2,3,4,6,1,3,8,3,5,9)
    .takeWhile {
        $0 < 7
}
.subscribe(onNext: { print($0) })
.disposed(by: bag)

takeUntil

  • サブスクリプション観測に加えて、だけでなく、takeUntilの方法により、我々は、すなわち通知、別の観測を監視することができます
  • 通知発行値または完了通知場合は、ソース観察可能で、自動的にイベントの送信を停止します
let source21 = PublishSubject<String>()
let notifier21 = PublishSubject<String>()
source21.takeUntil(notifier21)
    .subscribe(onNext: { print($0) })
    .disposed(by: bag)

source21.onNext("a")
source21.onNext("b")
source21.onNext("c")

notifier21.onNext("A")

source21.onNext("d")
source21.onNext("e")
source21.onNext("f")

skipWhile

  • 以前のすべてのイベントをスキップするために使用される方法は、条件を満たしています
  • イベントは、イベントの条件を満たしていない、そしてそれはスキップされません
Observable.of(1,2,3,4,5,6,7)
    .skipWhile{ $0 < 4 }
    .subscribe(onNext: { print($0) })
    .disposed(by: bag)

船まで

  • skipUntil添加、すなわち通知、skipUntil法によって、我々は別の観測を監視することができ、観測飼料、上記と同様TakeUntil
  • これとは対照的にtakeUntilソースとイベントの観測可能なシーケンスが通知通知値または完全なを発行した知っているが、デフォルトではスキップされていたであろう
let source32 = PublishSubject<Int>()
let notifier32 = PublishSubject<Int>()
source32.skipUntil(notifier32)
    .subscribe(onNext: { print($0) })
    .disposed(by: bag)

source32.onNext(1)
source32.onNext(2)
source32.onNext(3)

notifier32.onNext(11)

source32.onNext(4)
source32.onNext(5)

notifier32.onNext(12)

source32.onNext(6)
source32.onNext(7)

おすすめ

転載: www.cnblogs.com/gchlcc/p/11847862.html