3
let stream = PublishSubject<Int>()
let trigger = PublishSubject<Void>()
stream.sample(trigger).subscribeNext { value in print("value \(value)") }
stream.onNext(5)
trigger.onCompleted()
上記の値はコンソールに表示されます。私はトリガーでonNext()を呼び出したことがないので、それは驚くべきことです。完了時に `sample`が起動します。避ける方法?
私の場合、trigger
は保存ボタンrx_tap
を表し、stream
は保存される有効な入力を表します。私の問題は、タップされていなくてもトリガーが完了すると(破棄時に)ストリームが保存されていることです。 http://reactivex.io/documentation/operators/sample.html
あなたのケースで期待どおりに動作します: