从这个问题可以看出,我是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/

10-11 23:48