Android RX在PublishSubject中发布了所有内容,但首先
我想使用带延迟的AndroidXAndroid RX在PublishSubject中发布了所有内容,但首先,android,kotlin,rx-android,debounce,Android,Kotlin,Rx Android,Debounce,我想使用带延迟的AndroidXdebounce功能 问题是,第一个发出的项目不应该取消公告,也不应该有任何延迟,但所有其他项目都应该取消公告。 有什么简单的方法可以实现吗 现在看起来是这样的: publishSubject .debounce(2, TimeUnit.SECONDS) .observeOn(uiScheduler) .subscribe({
debounce
功能
问题是,第一个发出的项目不应该取消公告,也不应该有任何延迟,但所有其他项目都应该取消公告。
有什么简单的方法可以实现吗
现在看起来是这样的:
publishSubject
.debounce(2, TimeUnit.SECONDS)
.observeOn(uiScheduler)
.subscribe({
onView { onRefreshEvent(it) }
}, {
onView { showError() }
}))
用
debounceSelector
publishSubject
.debounce {
if (isFirst(it)) {
Observable.just(it)
} else {
Observable.just(it).delay(2, TimeUnit.SECONDS)
}
}
.observeOn(uiScheduler)
.subscribe({
onView { onRefreshEvent(it) }
}, {
onView { showError() }
}))