@exadel/esl
Version:
Exadel Smart Library (ESL) is the lightweight custom elements library that provide a set of super-flexible components
26 lines (25 loc) • 551 B
JavaScript
/**
* Abstract Observable implementation
* @author Yuliya Adamskaya
*/
export class Observable {
constructor() {
this._listeners = new Set();
}
addListener(listener) {
this._listeners.add(listener);
}
removeListener(listener) {
this._listeners.delete(listener);
}
fire(...args) {
this._listeners.forEach((listener) => {
try {
listener.apply(this, args);
}
catch (e) {
console.error(e);
}
});
}
}