events事件
大多数node.js核心API都采用异步事件驱动架构,当主进程遇到了一个I?O请求时,把I/O 交给底层,然后并不受阻塞,当I/ 0完成之后就通知主进程,怎么做到的通知呢,通过触发一个事件,来告诉主进程我已经完事了。
用http写了一个server事件,每当有plant进行连接时,server就会触发一个contaction事件,这个时候如果我们绑定的contaction事件给他绑定了一些事件处理程序,每次客户端来都会调用相应的程序来进行处理了。
在node端所有能够触发事件处理程序的对象都是EventEmitter的实例,我们想着这个类有触发事件的能力,就要继承这个EventEmitter的实例。
//1.EventEmiter 在node内置的events包里
const EventEmitter=require('events');
//2.定义一个自己的class,这是es6方法,继承EventEmitter类
class CustomEvent extends EventEmitter{
}
//3.定义一个实例
const ce=new CustomEvent();
//3.写一下对应的事件处理程序
ce.on('test',()=>{
console.log('this id a test!');
});
//4.用ce.emit事件触发这个定义的函数;
setInterval(()=>{
ce.emit('test');
},500);
不停地输出this id a test!