fun <T : RealmModel> T?.toFlow(): Flow<T?>
この RealmObject への変更を監視するフローを返します。 サブスクライブ時に現在の RealmObject が発行されます。 Object updates will continually be emitted as the RealmObject is updated - onCompletion
will never be called.
Realm フローから生成されたアイテムは固定されます。詳細は、 RealmObject.freezeを参照してください。 つまり、これらは不変で、どのスレッドからでも読み取ることができます。
Realm フローは常に、ライブ RealmObject を保持するスレッドからアイテムを出力します。 つまり、さらに処理が必要な場合は、計算ディスパッチで 値を収集することをお勧めします。
object.toFlow()
.map { obj -> doExpensiveWork(obj) }
.flowOn(Dispatchers.IO)
.onEach { flowObject ->
// ...
}.launchIn(Dispatchers.Main)
toFlow()
でアイテムの発行を停止する場合は、 kotlinx.coreoutine.flow.firstを呼び出して、最初のアイテムのみを発行するようにフローに指示できます。
val foo = object.toFlow()
.flowOn(context)
.first()
ReturnonEach
またはcollect
への呼び出しを実行できる Kotlinフロー。