transaction method
Implementation
Future<void> transaction(
Future<void> Function() action, {
List<String>? boxNames,
bool readOnly = false,
}) async {
boxNames ??= _db.objectStoreNames!.toList();
_txnCache = [];
await action();
final cache = List<Future<void> Function(Transaction txn)>.from(_txnCache!);
_txnCache = null;
if (cache.isEmpty) return;
final txn = _db.transaction(boxNames, readOnly ? 'readonly' : 'readwrite');
for (final fun in cache) {
fun(txn);
}
await txn.completed;
return;
}