У меня есть простой сервер 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.
Я хочу очистить первый интервал, когда flag
достигает определенного числа, например 10. Как мне этого добиться?
1 ответ
Вы должны определить 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);
NB: не тестировалось!
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.