UNPKG

facade-signalr-client

Version:

facade signalr client

54 lines 1.68 kB
class EventBus { constructor() { /** * 注册监听事件 * @param {string} eventName 事件名称 * @param {ICallback} callback 回调函数 */ this.on = (eventName, callback) => { if (!this.callbacks[eventName]) { this.callbacks[eventName] = []; } this.callbacks[eventName].push(callback); }; /** * 关闭监听事件 * @param {string} eventName 事件名称 * @param {ICallback} callback 回调函数 */ this.off = (eventName, callback) => { const events = this.callbacks[eventName]; if (!events) { return; } let index = -1; for (let i = 0; i < events.length; i++) { if (events[i] === callback) { index = i; break; } } if (index < 0) { return; } this.callbacks[eventName].splice(index, 1); }; /** * 触发事件 * @param {string} eventName 事件名称 * @param {T} args 事件入参 */ this.trigger = (eventName, ...args) => { const events = this.callbacks[eventName]; if (!events || !events.length) { return; } for (const callback of events) { callback.apply(this, args); } }; this.callbacks = {}; } } export default new EventBus(); //# sourceMappingURL=index.js.map