t-comm
Version:
专业、稳定、纯粹的工具库
38 lines (36 loc) • 961 B
JavaScript
var EventBus = /** @class */function () {
function EventBus() {
this.events = {};
}
EventBus.prototype.emit = function (eventName) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
if (this.events[eventName]) {
this.events[eventName].forEach(function (fn) {
fn.apply(void 0, args);
});
}
};
EventBus.prototype.on = function (eventName, fn) {
this.events[eventName] = this.events[eventName] || [];
this.events[eventName].push(fn);
};
EventBus.prototype.off = function (eventName, fn) {
if (!fn) {
delete this.events[eventName];
return;
}
if (this.events[eventName]) {
for (var i = 0; i < this.events[eventName].length; i++) {
if (this.events[eventName][i] === fn) {
this.events[eventName].splice(i, 1);
break;
}
}
}
};
return EventBus;
}();
export { EventBus };