第一个项目一到就交付,对以下项目进行去抖

Deliver the first item as soon as it comes, debounce the following items

这个问题和 and 一样,但是关于Kotlin流程。

需要达到的目标:

有动态去抖超时的简单解决方案:

var firstEmission = true
flow.debounce {
    if (firstEmission) {
        firstEmission = false
        0L
    } else DEBOUNCE_TIMEOUT
}

也可以这样做:

merge(
    flow.take(1),
    flow.drop(1).debounce(DEBOUNCE_TIMEOUT)
)