在Node.js中 - 事件(EventEmitter和Listener Function对象)与异步回调

时间:2017-04-12 04:32:33

标签: node.js events callback

我在探索Node.js.I了解Node.js核心API是围绕惯用的异步事件驱动架构构建的 现在,我猜这意味着每次调用一个异步函数时,它都会将这个函数注册到一个单独的异步队列中,由Libuv通过一个单独的线程来处理。并在主程序线程中继续执行到下一行。现在,当asyc函数完成执行时,它会'发出'某个事件或者只是将回调注册到事件队列中,最终会被事件循环拾取吗?基本上我对理解一般'事件'和异步回调的概念有多么混乱(如果它们也称为某些事件)。

1 个答案:

答案 0 :(得分:0)

据我所知,它与addListener没什么不同。这里有关于事件的一些文档:http://nodejs.org/docs/latest/api/events.html#emitter.on on和addListener都记录在同一标题下。它们具有相同的效果;

server.on('connection', function(stream) {
    console.log('someone connected!');
});

server.addListener('connection', function(stream) {
    console.log('someone connected!');
});

和.on()与EventEmitter对象中的.addListener()完全相同。

直接来自EventEmitter源代码:https://github.com/nodejs/node-v0.x-archive/blob/master/lib/events.js#L188

EventEmitter.prototype.on = EventEmitter.prototype.addListener;