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 。