once<T>  function 
 
        
Worker
once<T>( 
    
- RxInterface<T> listener,
- WorkerCallback<T> callback, {
- dynamic condition = true,
- Function? onError,
- void onDone()?,
- bool? cancelOnError,
once() will execute only 1 time when condition is met and cancel
the subscription to the listener stream right after that.
condition defines when callback is called, and
can be a bool or a bool Function().
Sample:
 class _CountController extends GetxController {
  final count = 0.obs;
  Worker worker;
  @override
  Future<void> onInit() async {
    worker = once(count, (value) {
      print("counter reached $value before 3 seconds.");
    }, condition: () => count() > 2);
    3.delay(worker.dispose);
  }
  void increment() => count + 1;
}
Implementation
Worker once<T>(
  RxInterface<T> listener,
  WorkerCallback<T> callback, {
  dynamic condition = true,
  Function? onError,
  void Function()? onDone,
  bool? cancelOnError,
}) {
  late Worker ref;
  StreamSubscription? sub;
  sub = listener.listen(
    (event) {
      if (!_conditional(condition)) return;
      ref._disposed = true;
      ref._log('called');
      sub?.cancel();
      callback(event);
    },
    onError: onError,
    onDone: onDone,
    cancelOnError: cancelOnError,
  );
  ref = Worker(sub.cancel, '[once]');
  return ref;
}