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

executionTransactionAwait

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 - transactionnull 인 경우.

RealmMigrationNeededException - 최신 버전에 호환되지 않는 스키마 변경 사항이 포함된 경우.