Observer
This is a simple observer implementation for implementing synchronous in-process events for a local service.
It works full stack on every JS system.
You'll use it like this:
import Observer from "./src/fi/hg/core/Observer";
enum FooEvent {
CHANGED = "FooService:changed",
}
class FooService {
private static _data: any;
private static _data : any;
private static _observer : Observer<FooEvent> = new Observer<FooEvent>("GeoIpService");
public static getData () : any {
return this._data;
}
public static on (name : FooEvent, callback : ObserverCallback<FooEvent>) : ObserverDestructor {
return this._observer.listenEvent(name, callback);
}
public static refreshData() {
HttpService.doSomething()
.then((response) => {
this._data = response.data;
this._observer.triggerEvent(FooEvent.CHANGED);
})
.catch((err) => {
console.error("Error: ", err);
});
}
}
FooService.on(FooEvent.CHANGED, () => {
const currentData = FooService.getData();
// ...
});
FooService.refreshData();