_http_server.js – 没有请求(“事件”).emit()&& .on()怎么样?

github上的_http_server.js在/nodejs/node/blob/master/lib/_http_server.js使用.emit()方法14次,再加上它使用.on()方法11次。

我很困惑,因为我相信这个方法来自Node.js中的request('events')。 我在整个文件中search了一个这样的行,这行已经从第113行到第130行注释掉了。我可以find使用.emit()和.on()方法的其他方法。

任何人都可以解释如何使用.emit()和.on()没有请求('事件')?

_http_server.js通过inheritance使用EventEmitter (你从require('events')得到的东西)。

  • ServerResponse inheritance自OutgoingMessage ,它从Streaminheritance,而Stream inheritance自EventEmitter
  • Server本身inheritance自从net.Server inheritance的EventEmitter

这就是为什么_http_server.js能够使用EventEmitter方法的原因,即使您没有在该文件中看到require('events') :它所依赖的类最终依赖于EventEmitter