myanmarking
01/08/2020, 10:43 AMfun <T> Flow<T>.delayFirst(
time: Long,
timeUnit: TimeUnit = TimeUnit.MILLISECONDS
): Flow<T> {
return flow {
val isFirst = AtomicReference(true)
collect { value ->
if (isFirst.getAndSet(false)) {
delay(timeUnit.toMillis(time))
}
emit(value)
}
}
}