javascript - 在 "on"语句之外定义套接字 io 函数

标签 javascript node.js socket.io

我正在 JavaScript 中使用 Socket.io 编写代码,并且我一直在尝试定义在事件语句之外的某个事件期间发生的函数,因为我想稍后重用该函数。因此,而不是通常的:

socket.on('eventName',function(input){
   //code triggered by event
});

我想预先声明该函数,然后在“on”语句中使用它:

function myFunction(input){
  //some code
}
socket.on('input', myFunction(input));

到目前为止,我还没有取得任何成功,并且我在终端中不断收到此错误:

nodejs exception: ReferenceError: input is not defined

引用通过“input”事件从客户端发送的输入。我是否总是必须在“on”语句中定义触发事件时发生的代码?

最佳答案

您想要传递对 myFunction 的引用,如下所示:

socket.on('input', myFunction);

您对myFunction(input)所做的实际上是使用 undefined variable input执行myFunction作为其参数(因此出现错误)。

关于javascript - 在 "on"语句之外定义套接字 io 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37999012/

相关文章:

javascript - Koa - 发出内部请求

node.js - NightmareJS脚本执行错误

node.js - mocha 应该预料到超时,超时时调用 done()

node.js - 命名事件——包罗万象还是特定的?

JavaScript 和 CSS : How to log position of a div between css translate start and end

javascript - 从 javascript/jquery 中的另一个函数中使用 $(this) 单击函数调用

angularjs - "npm run dev"和 "npm start"之间的区别

http - 使用 HTTP keep-alive 和 websockets (socket.io) 时的 TCP 连接数

javascript - 是否有同时在 C++ 和 Javascript 中实现的高级进程间通信 API

javascript - Bluebird中的捕获错误类型不起作用