У меня есть поток чего-то. И мне нужно написать функцию, которая как можно скорее возвращает первый элемент, а все последующие вызовы этих функций возвращают последнее значение потока.
val f = flow {
emit(1)
delay(100)
emit(2)
}
suspend fun getLatest() = f.conflate().first() // this should be fixed, something like latest()
suspend fun main() {
println(getLatest())
delay(100)
println(getLatest())
delay(100)
println(getLatest())
delay(100)
println(getLatest())
}
На выходе должны быть сначала единицы, а через некоторое время всегда двое. Приведенный выше код всегда возвращает единицы, и я не понимаю, почему.