Node模块-Events

本节主要讲述Node模块-Events

Events

Node的Events模块只定义了一个类,就是Event

事件和监听器

  • Node程序中的对象会产生一系列的事件,他们被称为事件触发器
  • 例如一个HTTP Server会在每次有新连接时触发一个事件,一个Readable Stream 会在文件打开时触发一个事件等
  • 所有能触发事件的对象都是EventEmitter类的实例

on方法

1
2
3
4
5
6
7
8
var eventEmitter = require('events');

var myEmitter = new eventEmitter();

myEmitter.on('begin', function() {
console.log("begin");
})
myEmitter.emit("begin");

上面的代码中,首先初始化一个eventEmitter实例,然后注册了一个名为begin的事件,之后调用emit方法触发这个事件

用户可以注册多个同名事件,那么它们都会被触发

获取挡墙的emitter注册了哪些事件

1
console.log(myEmitter.eventNames());

处理error事件

当Node出现错误的时候,如果代码中没有注册相应的处理方法,会导致Node进程崩溃

1
myEmitter.emit('error', new Error("error"));

解决办法

未完待续