Updated on 2026-08-14
This commit is contained in:
parent
08023dffac
commit
321b026fb4
12 changed files with 404 additions and 37 deletions
|
|
@ -1,6 +1,9 @@
|
|||
package com.tangem.utils.coroutines
|
||||
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
* Job holder. It is automatically finished old job if new one is started
|
||||
|
|
@ -26,4 +29,13 @@ class JobHolder {
|
|||
|
||||
fun Job.saveIn(jobHolder: JobHolder): Job = jobHolder.update(job = this)
|
||||
|
||||
suspend fun Job.saveInAndJoin(jobHolder: JobHolder) = saveIn(jobHolder).join()
|
||||
suspend fun Job.saveInAndJoin(jobHolder: JobHolder) = saveIn(jobHolder).join()
|
||||
|
||||
fun CoroutineScope.withDebounce(jobHolder: JobHolder, timeMillis: Long = 800L, function: () -> Unit) {
|
||||
launch {
|
||||
delay(timeMillis = timeMillis)
|
||||
|
||||
function()
|
||||
}
|
||||
.saveIn(jobHolder)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue