setTimeout 内代码为什么不执行?

image.png
初次建立连接会出现 webSocket is not defined
image.png
tab切换的时候会 打印4444 5555不打印

阅读 2.1k
3 个回答

有没有可能两个if都是false

2023-01-13 补充

新补的图显示 webSocket is not defined —— 但是很显然下面用的是 websocket 而不是 webSocket 啊……注意大小写


原回答

从目前的输出来看,并不能判断出 setTimeout 内的代码不执行,它有可能是执行了,但不是判断的这两个状态,毕竟 websocket 的 readyState 有 4 个状态。

如果想了解 setTimeout 中的代码是否执行,应该在里面加 console.log

setTimeout(() => {
    console.log("这是在 setTiemout 里面");
    //....
});

如果想判断为什么没进分支,最好把 readyState 的值也打印出来,所以

setTimeout(() => {
    console.log("webSocket.readyState ==", webSocket.readyState);
    //....
});

webSocket都是undifined了还不知道什么问题吗。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题