readTransaction<R> method
Future<Result<R, DbError> >
readTransaction<R>(})
Runs body against one consistent read-only snapshot; writes committed
meanwhile are not seen. The snapshot is released when body ends.
Implementation
Future<Result<R, DbError>> readTransaction<R>(
Future<Result<R, DbError>> Function(ReadTransaction tx) body, {
Duration idleTimeout = BeginRequest.defaultIdleTimeout,
}) => _guarded(() async {
final begun = await _send(
BeginRequest(TransactionMode.read, idleTimeout: idleTimeout),
);
return begun.when(
ok: (id) => ReadTransaction._(this, id)._complete(body),
err: (error) async => Err(error),
);
});