transformLatest 
  Returns a flow that produces element by transform function every time the original flow emits a value. When the original flow emits a new value, the previous transform block is cancelled, thus the name transformLatest.
For example, the following flow:
flow {
    emit("a")
    delay(100)
    emit("b")
}.transformLatest { value ->
    emit(value)
    delay(200)
    emit(value + "_last")
}Content copied to clipboard
produces a b b_last.
This operator is buffered by default and size of its output buffer can be changed by applying subsequent buffer operator.