javascript - 在套接字 io 函数中重用变量

标签 javascript node.js socket.io

所以现在我在用户提交登录表单时存储信息。

io.on('connection', (socket) => {

let userInfo; 

    socket.on('login', (data) => {
        userInfo = data;
        console.log(userInfo); // {username: 'testusername'}
    });

    socket.on('lobby-left', (userInfo) => {
        console.log(userInfo); // { } 
    });

问题是在lobby-left中我不再从变量中获取任何信息。我得到空括号 { }。如何重用该变量以便可以在所有函数中使用登录信息?

最佳答案

您需要将其分配给 userInfo

let userInfo; 

socket.on('login', (data) => {
    userInfo = data;
    console.log(userInfo); // {username: 'testusername'}
});

socket.on('lobby-left', (userInfoParam) => {
    console.log(userInfo); // { } 
});

关于javascript - 在套接字 io 函数中重用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54205554/

相关文章:

javascript - 为什么在这种情况下 jquery 不调用成功处理程序?

javascript - Permission.Request 响应始终为 false

javascript - Mongodb 返回填充对象但保存清空一些字段

javascript - 如何解决在 JSON 文件中创建新对象的问题?

javascript - 如何在 Angular 4 中使用 socket.io-client

python - gevent-socketio 从线程发送消息

javascript - 如何检查用户输入是否为整数

javascript - Backbone.js 设置导致集合中的模型再次成为 "initialize"

node.js - Express.compress 和移动设备

node.js - 使用 WebRTC.io 和 NodeJS 到达时连接到房间