Skip to content

l0.DependencyControl.EventEmitter

EventEmitter = require "l0.DependencyControl.EventEmitter"
local EventEmitter = require("l0.DependencyControl.EventEmitter")

EventEmitter

Minimal event registration mixin: on(event, cb) / off(event, cb) / _emit(event, ...). Subclasses provide an @Event Enum that defines the valid event values.

Constructor

eventEmitter = EventEmitter!
local eventEmitter = EventEmitter()

Creates an event emitter with an empty listener registry.

Instance methods

on

eventEmitter\on event, callback
eventEmitter:on(event, callback)

Registers a callback for an event.

param type description
event any The event value (a member of the subclass's @Event enum).
callback fun(self: EventEmitter, ...) Called with the emitter instance plus any event arguments.

Returns:

off

eventEmitter\off event, callback
eventEmitter:off(event, callback)

Unregisters a previously-registered callback for an event.

param type description
event any The event value.
callback function The exact callback previously passed to on().

Returns:

_emit

eventEmitter\_emit event, ...
eventEmitter:_emit(event, ...)

Invokes every listener registered for an event, passing the emitter instance followed by the given arguments. A listener may safely register or remove listeners during dispatch.

param type description
event any The event value whose listeners to invoke.
... any Extra arguments forwarded to each listener after the emitter instance.