fun <T> RealmList<T>.toFlow(): Flow<RealmList<T>>
Retorna um fluxo que monitora alterações nesta RealmList. Ele emitirá o RealmResults atual quando for inscrito. As atualizações do RealmList serão emitidas continuamente à medida que o RealmList é atualizado - onCompletion
nunca será chamado.
Os itens emitidos dos fluxos de Realm são congelados — consulte RealmList.freeze. Isso significa que eles são imutáveis e podem ser lidos em qualquer thread.
Os fluxos de domínio sempre emitem itens do thread que contém a Realm ativa. Isso significa que, se você precisar fazer processamento adicional, é recomendável coletar os valores em um despachante de computação:
list.toFlow()
.map { list -> doExpensiveWork(list) }
.flowOn(Dispatchers.IO)
.onEach { flowList ->
// ...
}.launchIn(Dispatchers.Main)
Se quiser que toFlow()
pare de emitir itens, você pode instruir o fluxo a emitir apenas o primeiro item ligando para kotlinx.coroutines.flow.first:
val foo = list.toFlow()
.flowOn(context)
.first()
Return
Kotlin Flow em quais chamadas para onEach
ou collect
podem ser feitas.