setTimeout 内代码为什么不执行?

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

阅读 2.2k
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了还不知道什么问题吗。。

推荐问题