事件驱动程序:
当web server接收到请求,就把它关闭然后进行处理,然后去服务下一个web请求。
当这个请求完成,它被放回处理队列,当到达队列开头,这个结果被返回给用户。
webserver一直接受请求而不需要等待读写操作(非阻塞式IO)
var es = require('events');
var ee = new es.EventEmitter();
ee.on('eventName',function () {
console.log('hello word');
});
//绑定方法
ee.emit('eventName');
//触发方法
运行结果如下:
on(arg1,arg2);
绑定方法,第一个参数是触发条件,第二个参数为触发的方法。
通过查看源码可以知道,它的原理在于,创建一个名为events的数组,绑定方法的时候,如果该触发条件没有绑定相应的方法(即events[‘eventName’]不存在),那么就将该方法赋值给events[‘eventName’],如果存在且该函数优先考虑,则events[‘eventName’] = [new function,old function]反之为events[‘eventName’] = [old function,new function],如果events[‘eventName’]的类型不为function,则将新的方法压入栈。
var events = require('events');
var ee = new events.EventEmitter();
var Handler = function conn() {
console.log('绑定第一个event.');
ee.emit('event2');
};
ee.on('event1',Handler);
ee.on('event2',function () {
console.log('绑定第二个event');
});
ee.emit('event1');
运行结果如下:
常用方法:
序号 |
方法</ |