events
Generated by tinox doc
A Node.js-style EventEmitter: register handlers with on/once, fire them with emit, and manage listeners with removeListener/removeAllListeners/listenerCount. Event payloads are JsonValue.
Pubsub
import tinox.core.events;
import tinox.core.json;
class Main
{
fnc main() -> Int32
{
let emitter: EventEmitter = EventEmitter::new();
let handler: fnc(JsonValue) -> Nothing = payload => {
println("got greeting: " + Json::stringify(payload));
};
EventEmitter::on(emitter, "greet", handler);
let payload: JsonValue = Json::parse("\"hello world\"");
EventEmitter::emit(emitter, "greet", payload);
println("listeners: " + EventEmitter::listenerCount(emitter, "greet").toString());
EventEmitter::removeListener(emitter, "greet", handler);
return 0;
}
}
class EventEmitter
Fields
listeners | Map<String, List<fn(JsonValue) -> Nothing>> |
Methods
fn new() → EventEmitter
fn on(emitter: EventEmitter, event: String, handler: fn(JsonValue) -> Nothing) → Nothing
fn once(emitter: EventEmitter, event: String, handler: fn(JsonValue) -> Nothing) → Nothing
fn emit(emitter: EventEmitter, event: String, data: JsonValue) → Nothing
fn removeListener(emitter: EventEmitter, event: String, handler: fn(JsonValue) -> Nothing) → Nothing
fn removeAllListeners(emitter: EventEmitter, event: String) → Nothing
fn listenerCount(emitter: EventEmitter, event: String) → Int64