Есть ли причина, по которой я должен отдавать предпочтение оператору Rx Java Flowable + Debounce вместо операций Kotlin Job + Delay + Cancel?
val emitter: FlowableEmitter? = null
val flowableOnSubscribe = FlowableOnSubscribe { emitter = it }
val flowable = Flowable(flowableOnSubscribe, BackPressureStrategy.LATEST).debounce(3, TimeUnit.SECONDS)
flowable.subscribe {
// Run request
}
emitter.onNext(..)
против
val job: Job? = null
fun request() = viewModelScope.launch(Dispatchers.IO) {
job.cancel()
delay(3000)
// Run request
}
job = request()
(возьми мой код с крошкой соли, написал простой пример)