run<T> static method

T run<T>(
  1. T fn()
)

Runs a function within a transaction (batches notifications)

Implementation

static T run<T>(T Function() fn) {
  _transactionDepth++;
  final wasInTransaction = _inTransaction;
  _inTransaction = true;

  try {
    return fn();
  } finally {
    _transactionDepth--;
    if (_transactionDepth == 0) {
      _inTransaction = false;
      _flushPending();
    } else if (!wasInTransaction) {
      _inTransaction = false;
    }
  }
}