once<T>  method 
Same as on but with a callback that is only called once.
  EventEmitter events = EventEmitter();
    ...
  events.once('message', (String data) => print('String: $data'));
Can be used asynchronously, such as:
  EventEmitter events = EventEmitter();
  final dynamicValue = await events.once('message');
  final stringValue = await events.once<String>('message');
Implementation
Future<T> once<T>(String? type, [EventCallback<T>? callback]) {
  final completer = Completer<T>();
  final listener = EventListener<T>(
    type,
    (data) {
      callback?.call(data);
      completer.complete(data);
    },
    once: true,
  );
  addEventListener(listener);
  return completer.future;
}