Open LeoWangJ opened 4 years ago
eventBus又稱eventHub,中文意思為訂閱發布模式
class eventEmitter { private cache = {} on (eventName, fn) { this.cache[eventName] = this.cache[eventName] || [] this.cache[eventName].push(fn) } emit (eventName, data) { let array = this.cache[eventName] || [] array.forEach(fn=>{ fn(data) }) } off(eventName, fn){ this.cache[eventName] = this.cache[eventName] || [] let index = this.cache[eventName].indexOf(fn) if(index === -1) return this.cache[eventName].splice(index, 1) } } let event = new eventEmitter() let fn1 =(data) => console.log(data) event.on('test', fn1) // 訂閱 event.emit('test','你好') // 發布 event.off('test', fn1) // 取消訂閱 event.emit('test','你好')
主要思路是
eventBus又稱eventHub,中文意思為訂閱發布模式
主要思路是