I try to use debounce to handle events that comes too often. In example below I just use endless timer to emulate periodic events. But debounce doesn't work and never called in my example. Does it look like I've missed something? Thanks
val slower = PublishSubject.create<Int>()
fun setup() {
slower
.debounce(3, TimeUnit.SECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe {
Timber.d("test slower $it") //this never called
}.addTo(disposable)
// run 1 sec endless timer
Observable.interval(0, 1000, TimeUnit.MILLISECONDS)
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe {
Timber.d("test timer 1 sec")
slower.onNext(1)
}.addTo(disposable)
}
build.gradle:
// RxJava
implementation 'io.reactivex.rxjava2:rxjava:2.2.10'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
// RxKotlin
implementation 'io.reactivex.rxjava2:rxkotlin:2.4.0'