繁体   English   中英

在Javascript函数参数中获取未定义的值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM