我知道Node.js核心应用程序接口现在是围绕惯用的异步事件驱动架构构建的,我猜这意味着每次调用异步函数时,它都会将该函数注册到某个独立的异步队列中,该队列在幕后由Libuv线程处理。并且在主程序线程中继续执行到下一行。现在,当asyc函数完成执行时,它是“发出”一些事件,还是只是将回调注册到事件队列中,最终将被事件循环拾取?基本上,我有点困惑于理解一般的“事件”和异步回调(如果它们也被称为一些事件)的概念有多不同。
发布于 2017-04-12 05:50:08
据我所知,它与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;
https://stackoverflow.com/questions/43360357
复制相似问题