socket io nodejs使用从一个套接字侦听器到另一个套接字侦听器的变量?

时间:2019-05-09 19:50:28

标签: javascript node.js socket.io

var x ="apple";

socket.on('fruits',function(data){
  var x = data;  //var x is orange here
});

console.log(x); /// but var x is still apple here.....


socket.on('DatatoServer',function(  
   socket.in(x).emit('receivedData', data); ///I want this x to be orange
});

如何使var x成为全局变量?

还是有一种方法可以在上面的侦听器的第二个套接字中使用该橙色var x?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

使用var关键字时,实际上是在回调范围内声明了一个新变量x。

要在全局范围内引用x,请删除var并直接进行设置。

此外,它是回调的事实可能会更改全局范围,在回调中使用箭头功能可以解决此问题。

socket.on('fruits', (data) => { 
    x = data; //var x is orange here
 });