将“require('events')。eventEmitter”更改为“require('events')”?

时间:2016-09-21 04:11:20

标签: node.js

我的老师告诉我使用:

const EventEmitter = require('events').eventEmitter;

但是,当前的nodejs文档说要使用:

const EventEmitter = require('events');

我的老师错了,node.js改变了吗?为什么会这样?

1 个答案:

答案 0 :(得分:4)

Nodejs曾要求您使用:

var EventEmitter = require('events').eventEmitter

但是,2013年5月,this change已在GitHub上提交:

  

事件:有事件模块导出EventEmitter此更改为100%   向后兼容。

     

此更改将使EventEmitter使用稍微简单/更好   并坚持亚组提出的最佳做法。

var EventEmitter = require("events")

var emitter = new EventEmitter()
     

唯一的区别是我们现在必须将EventEmitter设置为   EventEmitter的属性,用于向后兼容,就像我们一样   Stream

     

我们还在usingDomains上设置了EventEmitter属性   构造函数本身,因为它与它的当前用法一致   require("events").usingDomains = true

     

还有其他内部因素也可以从这一变化中受益   比如StringDecoder

现在允许更简单的语法:

var EventEmitter = require('events');

同时仍保持与旧语法的向后兼容性。