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

listenersMap<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