run<U> method

  1. @override
U run<U>(
  1. U fn()
)
override

Runs a function within this scope's context.

Parameters:

  • fn: Function to execute within the scope

Returns: The result of the function execution

Example:

final scope = EffectScope();

final result = scope.run(() {
  final signal = Signal(42);
  return signal.value;
});

Implementation

@pragma('vm:prefer-inline')
@pragma('wasm:prefer-inline')
@pragma('dart2js:prefer-inline')
@override
U run<U>(U Function() fn) {
  final prevContext = setActiveContext(this);
  try {
    return super.run(fn);
  } finally {
    setActiveContext(prevContext);
  }
}