更改socket.on(“data”,fn)nodejs的回调

时间:2017-05-24 11:10:53

标签: javascript node.js sockets

问题

我使用node.js net库作为套接字。

我有一个连接到主机和端口的socket变量:

let socket;
socket = net.createConnection( connectOpts, () => {
    socket.on( "data", () => console.log("Hello World"));
} );

但是,稍后,我想更改侦听器功能。为此,我做了:

socket.on( "data", () => console.log("Hello MARS"));

问题是当mu socket获取数据时,我看到Hello WorldHello MARS都打印出来了!

问题

如何将侦听器功能从Hello World更改为Hello MARS

1 个答案:

答案 0 :(得分:1)

不要忘记先删除旧的侦听器。

socket.removeListener("data", function(){
      socket.on( "data", () => console.log("Hello MARS"));
});
如果您想要接收简单事件然后删除监听器,

socket.once("data", callback);也可用。