javascript - 当在范围之外满足某些条件时,如何清除 WebSocket 中的间隔?
问题描述
我有一个像这样的简单 WebSocket 服务器:
wss.on('connection', ws => {
console.log('user is connected to the server')
const t = setInterval(() => {
++count
ws.send(count)
}, 2000);
})
我在页面下方有一个代码,例如
setInterval(() => {
++flag
}, 2000);
flag
let flag = 1.
我想在达到某个数字(如 10)时清除第一个间隔。flag
我该如何实现?
解决方案
您必须t
在函数之外定义以扩展范围
let t;
wss.on('connection', ws => {
console.log('user is connected to the server')
t = setInterval(() => {
++count
ws.send(count)
}, 2000);
})
然后在标志正常时清除它
let flag = 1;
setInterval(() => {
++flag;
if(flag===10)
clearInterval(t);
}, 2000);
而且,我建议你使用更多的表达名称,而不仅仅是t
.
也许,您还想清除第二个计时器
let flag = 1;
let secondTimer = setInterval(() => {
++flag;
if(flag===10) {
clearInterval(t);
clearInterval(secondTimer);
}
}, 2000);
注意:未经测试!
推荐阅读
- linux - Does the .so file still contain infomation about label
- html - 自定义 CSS 不能与 Bootstrap 一起使用
- google-calendar-api - 问:Google Calendar API,前景色
- javascript - 如何使用后端在 Vuetify 自动完成中创建无限滚动?
- python - Python - 在 AD 中搜索条目
- reactjs - 将 React 应用程序部署到 github 页面找不到构建文件夹
- reactjs - REACT JS POST http://localhost:4000/api/activation 401(未经授权)
- android - 是否可以更新材料设计日期选择器中的文本字段?
- google-cloud-pubsub - Include custom attributes using Spring Cloud Stream (StreamBridge)
- angular - Z-index 不在 iphone 上的 ion-card 中输入