[英]How do I define a callback function in an outer scope using Node.js?
我有以下代码:
for (i in namespaces)
{
namespaces[i].on('connection',handleConnection(namespaces[i]));
function handleConnection(ns)
{
return function (socket){//connection
socket.on('setUsername',setUsernameCallback);//event received
function setUsernameCallback(userN){//I want to move this
socket.username = userN;
//some code
}
};
}
}
为了使我的代码更易于阅读,我想使setUsernameCallback
函数定义在外部范围或另一个JS文件中,如下所示:
for (i in namespaces)
{
namespaces[i].on('connection',handleConnection(namespaces[i]));
function handleConnection(ns)
{
return function (socket){//connection
socket.on('setUsername',setUsernameCallback);//event received
};
}
}
function setUsernameCallback(userN){
socket.username = userN;
//some code
}
实际上,这是行不通的。 我尝试了不同的方法来传递参数,但是我仍然得到未定义的套接字 。
您可以像下面这样定义它
var setUsernameCallback = function(socket){
return function(userN){
socket.username = userN;
//some code
}
}
并将socket
传递给功能,以便可以访问
socket.on('setUsername',setUsernameCallback(socket));//event received
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.