在WebSocket开放活动中警报

发布于 2025-01-19 20:37:14 字数 781 浏览 0 评论 0原文

我有这样的代码,警报(“打开”)显示正常。

var webSocket = new WebSocket("ws://localhost:8080/WebSocketServerExample/websocketendpoint");
webSocket.onopen = function(message){ alert("open");};          
But when I add one more alert after webSocket creation then the same alert("open") doesn't appear
var webSocket = new WebSocket("ws://localhost:8080/WebSocketServerExample/websocketendpoint");
alert("after websoscket creation");
webSocket.onopen = function(message){ alert("open");};      

和线程有关系吗?

更新: 如果我们用 console.log 替换 onopen 事件中的警报,那么控制台中将再次出现任何内容。这意味着 onopen 中的所有代码都不会运行,因此我们假设该事件没有被触发。为什么?

I have this code that alert("open") is displayed ok.

var webSocket = new WebSocket("ws://localhost:8080/WebSocketServerExample/websocketendpoint");
webSocket.onopen = function(message){ alert("open");};          

But when I add one more alert after webSocket creation then the same alert("open") doesn't appear

var webSocket = new WebSocket("ws://localhost:8080/WebSocketServerExample/websocketendpoint");
alert("after websoscket creation");
webSocket.onopen = function(message){ alert("open");};      

Has it to do with threads?

UPDATE:
If we replace the alert inside onopen event with console.log then again nothing appears in console. This means that all the code inside onopen doesn't run so this leads us to assume that the event is not triggered. Why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

耶耶耶 2025-01-26 20:37:15

执行顺序为:

  1. var websocket = new WebSocket(...);
  2. alert("websoscket 创建之后");
  3. webSocket.onopen();< /code>
  4. alert("open");

即,onopen 回调在您的第一个 alert 之后执行。
这意味着,第一个警报打开,而第二个警报启动,并且在浏览器中,当已经有一个警报打开时,第二个警报将被阻止。

The sequence of execution is:

  1. var websocket = new WebSocket(...);
  2. alert("after websoscket creation");
  3. webSocket.onopen();
  4. alert("open");

i.e., the onopen callback is executed after your first alert.
That means, that the first alert is open while the second is launched, and in the browser, a second alert is blocked when there is already one open.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文