从这个问题可以看出,我是Node.js的新手。如果这样的问题不适合该论坛,我深表歉意,并请您将我定向到一个更好的地方。
我正在观看有关Lynda的一些培训课程,我们将介绍EventEmitter。在下面的代码中,我们必须向Person对象添加一个事件。我的问题是,为什么要以这种方式添加此事件,而不是仅从一开始就添加一个称为“说话”的函数?非常感谢你!
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.");
最佳答案
当您无法控制(太多)事件的生成时,EventEmitter会很有帮助。它们可能是由您无法控制的一些异步操作引起的。例如,数据库断开连接。
在此示例中,事件是Ben在说些什么。你不控制本。
您可以通过定义一个侦听器来响应他的事件-该函数在发生上述事件时执行。
关于node.js - 使用EventEmitter和仅使用函数有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46327388/