node.js - 在 Node.js 中 - 事件(EventEmitter 和 Listener Function 对象)和异步回调之间是否有任何关系

标签 node.js events callback

我正在探索 Node.js。我了解 Node.js 核心 API 是围绕惯用的异步事件驱动架构构建的 现在,我想这意味着每次调用异步 Function 时,它都会将该 Function 注册到某个单独的异步队列中,该队列在幕后由 Libuv 的单独线程处理。并且在主程序线程中继续执行到下一行。现在,当该异步函数完成执行时,它会“发出”一些事件还是只是将回调注册到事件队列中,最终将被事件循环拾取?基本上,我对理解一般“事件”和异步回调(如果它们也被称为某些事件)的概念有多么不同感到有点困惑。

最佳答案

据我所知,它与 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;

关于node.js - 在 Node.js 中 - 事件(EventEmitter 和 Listener Function 对象)和异步回调之间是否有任何关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43360357/

相关文章:

javascript - 未调用 Ajax 回调。如何解决这个问题?

java - 减慢相机对象的 setPreviewCallback 方法

javascript - stopPropagation() 不起作用?

javascript - 使用 JavaScript 和 Node.js 的必应翻译 API

javascript - Node.js 强制从另一台服务器下载

node.js - Mongoose 按日期查询

javascript - 在 JavaScript 中正确包装函数

javascript - 如何检测 "search"HTML5 输入的清除?

ios - Selector 方法必须与观察者所在的实例相同吗?

node.js - Node 中的 DOM 树到 HTML