私は、メッセージが到着するたびにビープ音を鳴らすインスタントメッセージングアプリを持っているとしましょう。私はdebounce
にビープ音を鳴らしたいけど、最初のメッセージが来たらビープ音を鳴らしたいし、次のものは聞こえません。RxSwift - Debounce/Throttle "inverse"
もう1つの例があります:私のアプリは入力通知を送信します(チャットしているユーザーがメッセージを入力していることがわかります)。私は入力を開始するときに入力通知を送信したいが、X秒間に新しい入力を送信するだけなので、入力したすべての文字について入力通知を送信しない。
これは意味がありますか?それのための演算子はありますか?それは既存の演算子で達成できますか?
これは私の最初の例のコードです。私はdebounce
で今解決していますが、それは理想的ではありません。 1秒間隔で1000個のメッセージを受信すると、最後のメッセージが到着するまでサウンドは再生されません(最初のサウンドを再生したい)。
self.messagesHandler.messages
.asObservable()
.skip(1)
.debounce(2, scheduler: MainScheduler.instance)
.subscribeNext { [weak self] message in
self?.playMessageArrivedSound()
}.addDisposableTo(self.disposeBag)
ありがとうございます!
ですこれは良い説明https://medium.com/@dkhuong291/throttle-vs-debounce-in-rxswift-86f8b303d5d4です – onmyway133