带有require.js async和io的Socket.io未定义

Socket.io with require.js async and io is undefined

本文关键字:io 未定义 Socket require js async 带有      更新时间:2023-09-26

有人能向我解释一下为什么这样做吗:

 <script src="//cdn.socket.io/socket.io-1.0.4.js"></script>
 <script>
        var socket = io('http://nodeapp.herokuapp.com');
        console.log(socket);
 </script>

但这不起作用:

 <script async src="//cdn.socket.io/socket.io-1.0.4.js"></script>
 <script>
        var socket = io('http://nodeapp.herokuapp.com');
        console.log(socket);
 </script>

错误为:

     Uncaught ReferenceError: io is not defined 

或者我如何用require.js在客户端附加socket.io库,在这种情况下可以正常工作(没有上面的错误(。

<script async ...

您明确要求浏览器在获得脚本之前不要等待。

因此,它不需要等到脚本被获取并执行后才进入下一个脚本。因此,当你进入时,io还没有定义

var socket = io('http://nodeapp.herokuapp.com');

脚本异步上的MDN