on method
void
on(
- String event,
- EventListener listener, {
- EventPriority priority = EventPriority.normal,
- bool once = false,
- 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);
}
}