JavaScript客户端编程中,事件是一个很重要的概念,因为客户端中响应用户操作是最重要的事情。Node.js中同样具有事件机制,这些功能在核心模块events
中,这里我们简要介绍事件发射器(EventEmitter)的使用,详细请参考官方文档。
下面是使用EventEmitter
的一个例子。
//创建一个事件对象
const events = require("events");
//绑定EventEmitter
const myEmitter = new events.EventEmitter();
myEmitter.on("someEvent", function(message){
console.log(message);
});
//触发事件
myEmitter.emit("someEvent", "hello, world!");
代码比较简单,就不多做解释了。
下面代码中,我们的两个类继承了EventEmitter
,并为其实例化的对象绑定了事件。
const events = require("events");
class Student extends events.EventEmitter
{
constructor(name) {
super();
this.name = name;
}
speak () {
console.log("Hello, I am " + this.name);
}
}
const tom = new Student("Tom");
const cat = new Student("Cat");
tom.on("speak", function() {
tom.speak();
});
cat.on("speak", function() {
cat.speak();
});
tom.emit("speak");
cat.emit("speak");