nodeJs---emitter模块(模拟封装)
Posted kingkun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodeJs---emitter模块(模拟封装)相关的知识,希望对你有一定的参考价值。
class EventEmitter { constructor() { this.emitter = {} } on(eventName,cb) { if (this.emitter[eventName]) { this.emitter[eventName].push(cb) } else { this.emitter[eventName] = [] this.emitter[eventName].push(cb) } } emit(eventName,...str) { if (this.emitter[eventName]) { for (let item of this.emitter[eventName]) { item(...str) } } else { throw eventName + ‘is not definde‘; } } } const eventEmitter = new EventEmitter(); const connectHandler = (str,str1) => { console.log(‘连接成功1。‘+str,str1); eventEmitter.emit(‘data_received‘); } eventEmitter.on(‘connection‘, connectHandler); eventEmitter.on(‘connection‘, (str,str1) => { console.log(‘连接成功2。‘+str,str1); }); eventEmitter.on(‘data_received‘, () =>{ console.log(‘数据接收成功。‘) }); eventEmitter.emit(‘connection‘,‘teststr‘,‘xxxxxx‘); console.log(‘程序执行完毕。‘)
以上是关于nodeJs---emitter模块(模拟封装)的主要内容,如果未能解决你的问题,请参考以下文章