UNPKG

e-virt-table

Version:

A powerful data table based on canvas. You can use it as data grid、Microsoft Excel or Google sheets. It supports virtual scroll、cell edit etc.

58 lines 1.56 kB
class EventBus { constructor() { Object.defineProperty(this, "events", { enumerable: true, configurable: true, writable: true, value: new Map() }); } has(event) { return this.events.has(event); } // 订阅事件 on(event, callback) { const callbacks = this.events.get(event) || []; callbacks.push(callback); this.events.set(event, callbacks); } // 一次性订阅事件 once(event, callback) { const onceCallback = (...args) => { callback(...args); this.off(event, onceCallback); }; this.on(event, onceCallback); return this; } // 取消订阅事件 off(event, callback) { const callbacks = this.events.get(event); if (callbacks) { const index = callbacks.indexOf(callback); if (index >= 0) { callbacks.splice(index, 1); if (callbacks.length === 0) { this.events.delete(event); } else { this.events.set(event, callbacks); } } } } // 发布事件 emit(event, ...args) { const callbacks = this.events.get(event); if (callbacks) { callbacks.forEach((callback) => { callback(...args); }); } } destroy() { this.events.clear(); } } export default EventBus; //# sourceMappingURL=EventBus.js.map