Node.js事件中的on()和addListener()有什么区别?

时间:2019-02-06 15:59:39

标签: javascript node.js events

我对Node.js事件中on()addListener()之间的区别感到困惑。有任何可以澄清差异的解释吗?

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:3)

没有差异

The documentation lists .on and .addListener as an alias

我要指出的一件事是在文档中,它确实指出.on返回了事件发射器,而addListener没有具体说明。

这只是一个疏忽,实际上,如果您键入代码,很容易看到:

const EventEmitter = require("events");
const myEE = new EventEmitter();
let a = myEE.on("foo",()=>{});
let b = myEE.addListener("foo",()=>{});

console.log(a);
console.log(b);

这两个日志将打印相同的内容,并且您将看到类似于以下内容的内容:

EventEmitter {
  domain: Domain {
    domain: null,
    _events: { error: [ Function: debugDomainError ] },
    _eventsCunt: 1,
    _maxListeners: undefined,
    members: []
  },
  _events: { foo: [ [ Function ], [ Function ] ] },
  _eventsCount: 1,
  _maxListeners: undefined
}

所以。它们之间没有区别。

答案 2 :(得分:2)

As per documentation,它们只是别名,所以没有区别。

另请参见库中的how they are defined