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模块(模拟封装)的主要内容,如果未能解决你的问题,请参考以下文章