Javascript 在Node.JS代码中,如何在套接字事件之外的作用域上使用let变量?
在Node.JS代码中,如何在套接字事件之外的作用域上使用let变量'equipe'Javascript 在Node.JS代码中,如何在套接字事件之外的作用域上使用let变量?,javascript,node.js,protocol-buffers,Javascript,Node.js,Protocol Buffers,在Node.JS代码中,如何在套接字事件之外的作用域上使用let变量'equipe' socket.on('equipConnected', (data) => { let equip = equips.Equip.deserializeBinary(data); console.log(equip.getName()); }); 最简单的方法是: 更好的参数: socket.on('equipConnected', (data) =&
socket.on('equipConnected', (data) => {
let equip = equips.Equip.deserializeBinary(data);
console.log(equip.getName());
});
最简单的方法是:
更好的参数:
socket.on('equipConnected', (data) => {
doSth(equips.Equip.deserializeBinary(data));
console.log(equip.getName());
});
function doSth(equip) {
console.log(equip);
}
您不应该这样做,因为您不知道它什么时候有效,多个用户点击您的服务器会导致它的值在没有警告的情况下更改。所以,你真的应该把你的问题改成你真正想做的事情,这样我们才能更好地帮助你解决真正的问题,因为你要求的不是解决问题的方法。好吧,但是我如何为一个套接字客户端发出这些信息呢?然而,问题事件发生在server.jsI上,我不明白最后一条评论是什么意思。您将问题标记为node.js,因此我假设您正在向我们展示服务器端代码。是的!这是服务器代码!我现在的问题是如何使用emit通过socket.io将“equipm”变量中的数据发送到客户端?要发送到客户端,请使用socket.emit。仍然不确定你在问什么。第一个选项不太可能是解决多用户服务器问题的有效或可取的方法。是的,但你不会教新手一些只在调试情况下正常工作,而不是在真正的服务器情况下正常工作的东西。这就是我评论的重点。这不是解决服务器端问题的推荐方法,因此不应该出现在一个好的答案中。
socket.on('equipConnected', (data) => {
doSth(equips.Equip.deserializeBinary(data));
console.log(equip.getName());
});
function doSth(equip) {
console.log(equip);
}