1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
class EventBus{ constructor(){ this.handles = [] }
on(eventName,callbake){ const triggerEvent = this.handles[eventName] if (!triggerEvent) { this.handles[eventName] = [] }
this.handles[eventName].push(callbake) }
emit(eventName,...params){ const triggerEvent = this.handles[eventName]
if (triggerEvent) { triggerEvent.forEach( callbake => callbake(...params) ) } } }
const evnetBus = new EventBus()
evnetBus.on('eventA',(args)=>console.log(`A--${args}`)) evnetBus.on('eventA',()=>console.log('A')) evnetBus.on('eventB',()=>console.log('B')) evnetBus.on('eventB',()=>console.log('BB')) evnetBus.on('eventC',()=>console.log('C'))
evnetBus.emit('eventA',996)
|