addListener method

ProviderSubscription<State> addListener(
  1. ProviderBase<State> provider,
  2. void listener(
    1. State? previous,
    2. State next
    ), {
  3. required bool fireImmediately,
  4. required void onError(
    1. Object error,
    2. StackTrace stackTrace
    )?,
})

Implementation

ProviderSubscription<State> addListener(
  ProviderBase<State> provider,
  void Function(State? previous, State next) listener, {
  required bool fireImmediately,
  required void Function(Object error, StackTrace stackTrace)? onError,
}) {
  onError ??= _fallbackOnErrorForProvider(provider);

  if (fireImmediately) {
    // TODO test flush
    flush();
    handleFireImmediately(getState()!, listener: listener, onError: onError);
  }

  final sub = _ProviderSubscription<State>._(
    this,
    listener,
    onError: onError,
  );

  _listeners.add(sub);

  return sub;
}