[英]Get undefined value in Javascript function parameter
var sockets = [];
function findSocketByUID(uid){
var index = findIndexByUID(uid);
if(index == -1) return null;
return sockets[index];
}
socket.on('chat message', function(msg){
if(msg.to == 'all'){
io.emit('chat message', msg);
}else{
var socket_to = findSocketByUID(msg.to);
if(socket_to){
socket_to.emit("chat message", msg);
}else{
socket.broadcast.emit("chat message", msg);
}
}
});
嗨,这是我的Node.JS应用程序的一部分,使用参数msg.to调用findSocketByUID,该参数为字符串值。 但是,为什么函数findSocketByUID中的参数uid未定义? 如何正确调用findSocketByUID以传递参数?
编辑:我在此行添加一个断点:
var socket_to = findSocketByUID(msg.to);
和我的味精看起来像这样:
“ {”到“:” a27efd3f-ee63-413a-20ae-527419fab246“,”内容“:” giuh“,”时间“:” 2016-06-06T11:27:11Z“,”来自“:” 683C2782-A575 -4154-9F78-CAD6B74AB19D“}”
在您的编辑中显示的msg
似乎是JSON字符串,而不是实际的对象(它在大括号内带有引号)。 字符串没有.to
属性。
您需要使用JSON.parse()
将其转换为实际对象,以便可以访问其属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.