addListener在node.js中做了什么?

时间:2010-04-29 11:35:49

标签: javascript javascript-events node.js listeners

我试图在node.js中理解addListener的目的。有人可以解释一下吗?谢谢!一个简单的例子是:

var tcp = require('tcp');
var server = tcp.createServer(function (socket) {
  socket.setEncoding("utf8");
  socket.addListener("connect", function () {
    socket.write("hello\r\n");
  });
  socket.addListener("data", function (data) {
    socket.write(data);
  });
  socket.addListener("end", function () {
    socket.write("goodbye\r\n");
    socket.end();
  });
});
server.listen(7000, "localhost");

2 个答案:

答案 0 :(得分:8)

由于Node.js工作事件驱动并执行事件循环这一事实,注册侦听器允许您定义每次触发事件时将执行的回调。因此,它也是一种异步形式。代码结构。

它与GUI监听器相当,可以激发用户交互。就像鼠标单击一样,触发GUI应用程序中的代码执行,您的示例中的侦听器将在事件发生后立即运行,即新客户端连接到套接字。

答案 1 :(得分:1)

它为“事件”注册一个监听器。事件由字符串标识,例如"connect""data"。第二个参数是一个函数,一个所谓的“回调”,也称为“事件处理程序”。只要在侦听器已注册的对象中发生特定事件,就会调用所有处理程序。

node.js使用它,因为它采用了异步执行模型,最好用事件驱动的方法来处理。

格尔茨
back2dos