1.3.0 • Published 4 months ago

@aster-js/events v1.3.0

Weekly downloads
6
License
ISC
Repository
github
Last release
4 months ago

@aster-js/events

Provides proper separation between the emitter and the event.

Declaration

import { EventEmitter, IEvent } from "@aster-js/events";

class DataLoader<T> {
    private readonly _onDataLoaded = new EventEmitter<T>();

    get onDataLoaded(): IEvent<[T]> { return this._onDataLoaded.event; }

    fetchData(): Promise<void> {
        fetch("https://myapi.io/data")
            .then(r => r.json())
            .then(data => this._onDataLoaded.trigger(data));
    }
}

Usage

type DataItem = { id: number, name: string };

const loader = new DataLoader<DataItem[]>();

loader.onDataLoaded((items: DataItem[])=> {
    // Do stuff
});