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

WindowsGUI自动化测试框架搭建-登录模块封装

手把手教你学python(从零开始学python)之:模块

IPEX-1代/3代/4代/5代,PCB天线底座,公头,样式及封装尺寸图

selenium模块的基本使用

模拟jQuery--添加类名和移除类名的封装

超能装!台积电第5代最新封装技术路线图公布