| 123456789101112131415161718192021222324252627282930 |
- // 极简事件总线(避免引入额外依赖)
- const listeners = new Map()
- export function on(event, handler) {
- if (!event || typeof handler !== 'function') return
- const set = listeners.get(event) || new Set()
- set.add(handler)
- listeners.set(event, set)
- }
- export function off(event, handler) {
- const set = listeners.get(event)
- if (!set) return
- set.delete(handler)
- if (set.size === 0) listeners.delete(event)
- }
- export function emit(event, payload) {
- const set = listeners.get(event)
- if (!set || set.size === 0) return
- for (const fn of Array.from(set)) {
- try {
- fn(payload)
- } catch (e) {
- // ignore
- }
- }
- }
|