events 事件系统

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

下面代码中,我们的两个类继承了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");
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap