abort method

FutureOr<TransactionAbortedError?> abort({
  1. String? reason,
  2. Object? payload,
  3. Object? error,
  4. StackTrace? stackTrace,
})

Aborts this transaction.

Implementation

FutureOr<TransactionAbortedError?> abort(
    {String? reason,
    Object? payload,
    Object? error,
    StackTrace? stackTrace}) {
  if (_commitCalled) {
    return null;
  }

  if (_aborted) {
    return _abortError;
  }

  payload ??= _lastResult;

  var abortError = _resolveAbortError(error, stackTrace, reason, payload);

  _abortError = abortError;
  _aborted = true;

  for (var op in _operations.whereNotIn(_executedOperations)) {
    finishOperationVoid(op, null, allowAutoCommit: false);
  }

  return abortError;
}