Снятие сетевых запросов с помощью Job + Cancel против RxJava - PullRequest
0 голосов
/ 15 апреля 2020

Есть ли причина, по которой я должен отдавать предпочтение оператору 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()

(возьми мой код с крошкой соли, написал простой пример)

...