mframejs
Version:
simple framework
32 lines • 983 B
JavaScript
export class EventAggregator {
constructor() {
this.channels = {};
}
publish(channel, ...args) {
if (Array.isArray(this.channels[channel])) {
for (let i = 0, len = this.channels[channel].length; i < len; i++) {
this.channels[channel][i].apply(this, args);
}
}
else {
}
}
unsubscribe(channel, func) {
if (Array.isArray(this.channels[channel])) {
for (let i = 0, len = this.channels[channel].length; i < len; i++) {
if (this.channels[channel][i] === func) {
this.channels[channel].splice(i, 1);
}
}
}
else {
}
}
subscribe(channel, func) {
if (!Array.isArray(this.channels[channel])) {
this.channels[channel] = [];
}
this.channels[channel].push(func);
}
}
//# sourceMappingURL=eventAggregator.js.map