kotlin-extensions / io.realm.kotlin / io.realm.RealmList / toFlow

toFlow

fun <T> RealmList<T>.toFlow(): Flow<RealmList<T>>

이 RealmList의 변경 사항을 모니터링하는 플로우 를 반환합니다. 구독 시 현재 RealmResults를 내보냅니다. RealmList 업데이트는 RealmList가 업데이트될 때마다 계속 내보내지며, onCompletion 은(는) 호출되지 않습니다.

Realm 흐름에서 방출된 항목은 동결됩니다( RealmList.freeze 참조). 즉, 변경할 수 없으며 모든 스레드에서 읽을 수 있습니다.

Realm 흐름은 항상 라이브 RealmList를 보유한 스레드에서 항목을 방출합니다. 즉, 추가 처리를 수행해야 하는 경우 계산 디스패처에서 값을 수집하는 것이 좋습니다.

list.toFlow()
  .map { list -> doExpensiveWork(list) }
  .flowOn(Dispatchers.IO)
  .onEach { flowList ->
    // ...
  }.launchIn(Dispatchers.Main)

toFlow() 에서 항목 방출을 중지하려면 kotlinx.coroutines.flow.first 를 호출하여 첫 번째 항목만 방출하도록 흐름에 지시할 수 있습니다.

val foo = list.toFlow()
  .flowOn(context)
  .first()

Return
onEach 또는 collect 를 호출할 수 있는 코틀린 (Kotlin) Flow 입니다.