suspend fun Realm.executeTransactionAwait(context: CoroutineContext = Realm.WRITE_EXECUTOR.asCoroutineDispatcher(), transaction: (realm: Realm) -> Unit): Unit
コルーチン内で使用するRealm.executeTransactionのバージョンを一時停止します。
この関数が実行されるスコープまたはジョブをキャンセルしても、トランザクション自体はキャンセルされません。 トランザクションが一致していることを確認するには、トランザクションの実行中にCoreoutineScope.isActiveの値を確認する必要があります。
coroutineScope.launch {
// insert 100 objects
realm.executeTransactionAwait { transactionRealm ->
for (i in 1..100) {
// all good if active, otherwise do nothing
if (isActive) {
transactionRealm.insert(MyObject(i))
}
}
}
}
context
- このコルーチンが実行される任意のコルーチンコンテキスト。
transaction
- 実行するRealm.Transaction 。
IllegalArgumentException
- transaction
がnull
の場合。
RealmMigrationNeededException
- 最新バージョンに互換性のないスキーマの変更が含まれている場合。