2016-09-21 110 views
0

我的老師告訴我使用:將「require('events')。eventEmitter」更改爲「require('events')」?

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

但是,當前文檔的NodeJS說使用:

const EventEmitter = require('events'); 

是我的老師錯了,做了Node.js的變化或者這是爲什麼?

+1

它看起來可以在最新版本的節點中使用,但您曾經需要使用'require('events')。eventEmitter'。 – jfriend00

+1

我編輯你的問題,使其更清晰,並希望給你一個問題應該是什麼樣子的例子。如果這不是你想要的,那麼請糾正它,但要努力保持清楚。 – jfriend00

回答

4

的NodeJS用於要求使用:

var EventEmitter = require('events').eventEmitter 

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

事件:有事件模塊出口EventEmitter這種變化是100% 向後兼容。

此更改將使使用EventEmitter稍微簡單/更好 並堅持由substack設定的最佳實踐。

var EventEmitter = require("events") 

var emitter = new EventEmitter() 

唯一的區別是,我們現在必須設置EventEmitterEventEmitter一個 屬性的向後兼容性就像我們做 Stream

我們還設立了usingDomains財產上的EventEmitter 構造函數本身因爲這符合它目前的使用情況 require("events").usingDomains = true

還有其他的內部構件會受益從這個變化以及 像StringDecoder

現在允許簡單的語法:

var EventEmitter = require('events'); 

,同時仍保持與舊的語法向後兼容性。

+0

爲什麼downvote? OP詢問'const eventEmitter = require('events');'與'const eventEmitter = require('events')。eventEmitter'並且這顯示了實際的GitHub簽入在哪裏執行const eventEmitter = require( 'events');'被添加並顯示解釋它的註釋以及這個改變是如何向後兼容的。 – jfriend00

+1

有些人沒有任何理由就坐在這裏downvote –