2017-10-10 113 views
0

我使用socket.io来制作多人游戏,并且我遇到了一个问题,即服务器返回的所有内容都被包含在该函数内部。 我试图将数据返回到客户端的全局变量。Socket.io发送数据到全局变量

<script> 
    let test = "no"; 
    let socket = io(); 
    socket.on('player',function(data){ 
     test = data; 
    }); 
    console.log(test); // says no instead of yes  
</script> 
+0

可以可靠地使用'data',与'player'消息到达是内部的消息处理程序的唯一地方。这就是异步操作的工作方式。将想要在该消息处理程序中使用该数据的代码。 – jfriend00

回答

0

socket.on是一个异步调用,从而

<script> 
    let test = "no"; 
    let socket = io(); 
    socket.on('player',function(data){ 
     test = data; 
     **console.log(test);** //say yes and also return it here 
    }); 
    // console.log(test); // says no instead of yes , will not work as async 

</script> 
+0

是的我意识到socket.io的异步属性,但由于我是新的,我不确定如何解决它。所以我必须在播放器函数中返回数据变量?我将如何去回归它? – Grey