subscribe method

QueryDispose subscribe(
  1. void listener(
    1. MutationState<TData, TVariables, TOptimistic> state
    )
)

Subscribes to execution state changes.

Implementation

QueryDispose subscribe(
  void Function(MutationState<TData, TVariables, TOptimistic> state) listener,
) {
  _gcTimer?.cancel();
  _observers.add(listener);
  cache.notify(
    MutationCacheEvent(MutationCacheEventType.observerAdded, this),
  );
  listener(state);
  return () {
    if (_observers.remove(listener)) {
      cache.notify(
        MutationCacheEvent(MutationCacheEventType.observerRemoved, this),
      );
      _scheduleGc();
    }
  };
}