commit<R> method
Commits this transaction, returning the final result.
Implementation
FutureOr<R?> commit<R>() {
if (_aborted) {
if (_commitCalled) {
return null;
}
_commitCalled = true;
return _abortImpl().resolveMapped((_) => null);
}
if (_commitCalled) {
FutureOr<dynamic> retFuture;
if (transactionResult != null) {
retFuture = transactionResult;
} else {
retFuture = _transactionCompleter.future;
}
return retFuture.resolveMapped((r) => r as R?);
}
_commitCalled = true;
return waitAllExecuted().resolveMapped((_) => _commitImpl<R>());
}