EventEmitter class
Event Emitter
An Event-based system, highly inspired by NodeJS's Event Emitter. This implementation uses generic types to allow for multiple data types while being very intuitive.
Based on JavaScript and suitable for Dart and Flutter with type safety.
Features
- Attach multiple listeners to an event emitter.
- Listen to events with a specific event type and data type.
- Emit an event of a specific type to be broadcasted to all listeners.
- Type safety, only the right type will be passed in.
- Use callbacks with
EventEmitter
. - Use streams with
StreamEventEmitter
. - Can be extended to create custom event emitters and events.
- Custom events can hold custom data to be used in the listeners.
Usage:
EventEmitter events = EventEmitter();
events.on('message', (String data) => print('String: $data'));
events.on('message', (int data) => print('Integer: $data'));
events.emit('message', 'Hello World');
events.emit('message', 42);
// [Output]
// String: Hello World
// Integer: 42
- Implementers
Constructors
- EventEmitter()
- EventEmitter
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
-
listeners
→ Set<
EventListener> -
List of all listeners active in the emitter.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
addEventListener<
T> (EventListener< T> listener) → bool - Adds a listener to the emitter. When an event is emitted, the listeners added will be matched.
-
emit<
T> (String type, [T? data]) → bool - Emit a event with a specific event type and data type. This will broadcast the message to all listeners that match the same event type and data type.
-
emitEvent<
T extends Event> (T event) → bool - Emits an event to all listeners. This will broadcast the event to all listeners that match the same event type and data type.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
off<
T> ({String? type, EventCallback< T> ? callback}) → bool - Remove an attached listener, by event type, data type and callback...
-
on<
T> (String? type, EventCallback< T> callback) → EventListener<T> -
Attach a listener to an emitter.
Calls the
callback
whenever there's a new event of the specified event type and data type. -
onAny<
T> (EventCallback< T> callback) → EventListener<T> - Same as on but without a type.
-
once<
T> (String? type, [EventCallback< T> ? callback]) → Future<T> - Same as on but with a callback that is only called once.
-
removeEventListener<
T> (EventListener< T> listener) → bool - Removes a listener from the emitter.
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited