kotlin 拡張機能/ io.realm.kotlin/ io.realm.Realm / executionTransactionAwait

executionTransactionAwait

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 - transactionnullの場合。

RealmMigrationNeededException - 最新バージョンに互換性のないスキーマの変更が含まれている場合。