kotlin-extensions / io.realm.kotlin /io.realm.Realm / executeTransactionAwait

executeTransactionAwait

suspend fun Realm.executeTransactionAwait(context: CoroutineContext = Realm.WRITE_EXECUTOR.asCoroutineDispatcher(), transaction: (realm: Realm) -> Unit): Unit

Suspenda a versão de Realm.executeTransaction para usar dentro de corrotina.

Cancelar o escopo ou a tarefa em que esta função é executada não cancela a transação em si. Se quiser garantir que sua transação seja participativa, verifique o valor de CoroutineScope.isAtive enquanto executa a transação:

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))
      }
    }
  }
}

Parâmetros

context - CoroutineContext opcional no qual essa corrotina será executada.

transaction - o Realm.Transaction a ser executado.

Exceções

IllegalArgumentException - se o transaction for null.

RealmMigrationNeededException - se a versão mais recente contiver alterações de esquema incompatíveis.