Как определить, закрыт ли FlowCollector? - PullRequest
0 голосов
/ 26 сентября 2019

Пожалуйста, проверьте код ниже, который представляет периодический поток.

import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.time.delay

fun Duration.asFlow(): Flow<Unit> {
    val delayTime = this

    return flow {
        do {
            emit(Unit)

            delay(delayTime)
        } while (true)
    }
}

Вопрос: Могу ли я рассчитывать, что функция под flow будет отменена, когда поток будет завершен?

1 Ответ

1 голос
/ 26 сентября 2019

Ваш поток будет отменен, если один из последующих операторов отменит его.Если оператор попытается использовать весь поток, он не завершится без вмешательства.

...