autoDispose<T> method

ZenWorkerHandle autoDispose<T>(
  1. ValueNotifier<T> obs,
  2. bool disposeCondition(
    1. T
    ),
  3. void callback(
    1. T
    )
)

Worker that auto-disposes when a condition is met

Implementation

ZenWorkerHandle autoDispose<T>(
  ValueNotifier<T> obs,
  bool Function(T) disposeCondition,
  void Function(T) callback,
) {
  late ZenWorkerHandle handle;
  handle = ever<T>(obs, (value) {
    try {
      callback(value);
      if (disposeCondition(value)) {
        handle.dispose();
      }
    } catch (e, stack) {
      ZenLogger.logError('Error in autoDispose worker', e, stack);
      handle.dispose();
    }
  });
  return handle;
}