[英]Telegram bot which repeats send message with some time?
ClearInterval don't work or work but I make a mistake. ClearInterval 不工作或工作,但我犯了一个错误。 I don't know but when I use /stop it continue write 'Sending'.
我不知道,但是当我使用 /stop 时,它会继续写“发送”。 How to resolve such problem.
如何解决这样的问题。
bot.hears(/\/send|\/stop/, ctx=> { let sending = setInterval(() => { if (/\/send/.test(ctx.update.message.text)) { ctx.reply('Sending:'); } else if (/\/stop/.test(ctx.update.message.text)){ ctx.reply('stopping;'); clearInterval(sending), } }; 10000); });
The main problem is you're creating new intervals every time you send /send
or /stop
.主要问题是您每次发送
/send
或/stop
时都会创建新的间隔。 So, your intervals get created multiple times generating multiple intervals in parallel.因此,您的间隔被创建多次,并行生成多个间隔。
Something like this should work:像这样的东西应该工作:
let sendInterval;
bot.hears(/\/send|\/stop/, ctx => {
if (sendInterval) {
clearInterval(sendInterval);
}
if (/\/send/.test(ctx.update.message.text)) {
sendInterval = setInterval(() => {
ctx.reply('Sending');
}, 10000);
} else if (/\/stop/.test(ctx.update.message.text)) {
ctx.reply('stopping!');
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.