rxObserver<T> function

RxDisposer rxObserver<T>(
  1. T? fn(), {
  2. bool filter()?,
  3. void effect(
    1. T? value
    )?,
})

Implementation

RxDisposer rxObserver<T>(T? Function() fn, {bool Function()? filter, void Function(T? value)? effect}) {
  _stackTrace = StackTrace.current;
  _rxMainContext.track();
  fn();
  final listenable = _rxMainContext.untrack(_stackTrace);
  void Function() dispach = () {
    if (filter?.call() ?? true) {
      final value = fn();
      effect?.call(value);
    }
  };

  listenable?.addListener(dispach);

  return () {
    listenable?.removeListener(dispach);
  };
}