on method

  1. @override
void on(
  1. String event,
  2. EventListener listener, {
  3. EventPriority priority = EventPriority.normal,
  4. bool once = false,
  5. Object? subscriber,
})
override

Registers a listener for an event.

Adds a new event listener with the specified priority and options. Listeners are automatically sorted by priority (highest first).

event - The name of the event to listen for listener - The function to call when the event is emitted priority - Execution priority (higher priority listeners run first) once - Whether to remove the listener after first execution subscriber - Optional object to associate with this listener for cleanup

Implementation

@override
void on(
  String event,
  EventListener listener, {
  EventPriority priority = EventPriority.normal,
  bool once = false,
  Object? subscriber,
}) {
  _listeners[event] ??= [];
  _listeners[event]!.add(EventRegistration(listener, priority, once));
  _listeners[event]!.sort((a, b) => a.compareTo(b));

  if (subscriber != null) {
    _subscriberEvents[subscriber] ??= {};
    _subscriberEvents[subscriber]!.add(event);
  }
}