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))
}
}
}
}
context
- CoroutineContext opcional no qual essa corrotina será executada.
transaction
- o Realm.Transaction a ser executado.
IllegalArgumentException
- se o transaction
for null
.
RealmMigrationNeededException
- se a versão mais recente contiver alterações de esquema incompatíveis.