为什么回调中的套接字未定义?
main.js:26078 Uncaught TypeError: Cannot read property 'on' of undefined
控制台日志是一个Socket对象。
var jwt = sessionStorage.token;
console.log(socket);
socket.on('connect', function (socket) { // undefined socket
socket.on('authenticated', function () {
//do other things
})
.emit('authenticate', {token: jwt}); //send the jwt
});
答案 0 :(得分:2)
假设这是客户端代码,则没有socket
参数传递给connect
事件,因此请从代码中删除它。通过命名该参数socket
,您覆盖了更高范围的socket
变量,并且由于没有任何内容传递给该事件,因此这个被覆盖的socket
变量将为undefined
。改为:
var jwt = sessionStorage.token;
console.log(socket);
// remove socket argument from this next callback
socket.on('connect', function () {
socket.on('authenticated', function () { // undefined socket
//do other things
})
.emit('authenticate', {token: jwt}); //send the jwt
});