使用EventEmitter和只使用函数有什么区别?

时间:2017-09-20 16:33:26

标签: node.js

从这个问题可以看出,我对Node.js很新。如果这样的问题不适合这个论坛,我会道歉并要求你指导我到一个更好的地方。

我正在观看Lynda的一些培训课程,我们正在报道EventEmitter。在下面的代码中,我们必须向Person对象添加一个事件。我的问题是,为什么要以这种方式添加此事件而不是从一开始就向Person对象添加一个名为speak的函数?非常感谢你!

var EventEmitter = require('events').EventEmitter;
var util = require('util');

var Person = function(name) {
    this.name = name;
};

util.inherits(Person, EventEmitter);

var ben = new Person("Ben Franklin");

ben.on('speak', function(said) {

    console.log(`${this.name}: ${said}`);

});


ben.emit('speak', "You may delay, but time will not.");

1 个答案:

答案 0 :(得分:1)

当您无法控制(多)事件的生成时,

EventEmitter会很有帮助。它们可能是由您无法控制的异步操作引起的。例如,数据库断开连接。

  

在这个例子中,事件是Ben说的东西。你无法控制Ben。

您可以通过定义一个侦听器来响应他的事件 - 一个在所述事件发生时执行的函数。