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