【问题标题】:Socket.io send data to global variableSocket.io 将数据发送到全局变量
【发布时间】:2017-10-10 14:37:00
【问题描述】:

我正在使用 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>

【问题讨论】:

  • 您可以可靠地使用随player 消息到达的data 的唯一位置是在该消息处理程序内部。这就是异步操作的工作方式。将想要使用该数据的代码放入该消息处理程序中。

标签: javascript socket.io


【解决方案1】:

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>

【讨论】:

  • 是的,我知道 socket.io 的异步属性,但由于我是新手,我不确定如何解决它。所以我必须在播放器函数中返回数据变量?我该如何退货?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-26
  • 1970-01-01
  • 2018-05-27
  • 2016-01-08
  • 1970-01-01
相关资源
最近更新 更多