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