suspend fun Realm.executeTransactionAwait(context: CoroutineContext = Realm.WRITE_EXECUTOR.asCoroutineDispatcher(), transaction: (realm: Realm) -> Unit): Unit
코루틴 내에서 사용할 Realm.executeTransaction 버전을 일시 중단합니다.
이 함수가 실행되는 범위나 작업을 취소해도 트랜잭션 자체는 취소되지 않습니다. 트랜잭션이 협력적인지 확인하려면 트랜잭션을 실행하는 동안 Coroutinescope.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
- 이 코루틴이 실행될 선택적 CoroutineContext 입니다.
transaction
- 실행할 Realm.Transaction 입니다.
IllegalArgumentException
- transaction
가 null
인 경우.
RealmMigrationNeededException
- 최신 버전에 호환되지 않는 스키마 변경 사항이 포함된 경우.