一段时间后重复发送消息的电报机器人?
Telegram bot which repeats send message with some time?
ClearInterval 不工作或工作但我犯了一个错误。我不知道,但是当我使用 /stop 时,它会继续写入 'Sending'。如何解决这样的问题。
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);
});
主要问题是每次发送 /send
或 /stop
时都会创建新的间隔。因此,您的间隔会被多次创建,从而并行生成多个间隔。
像这样的东西应该可以工作:
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!');
}
});
ClearInterval 不工作或工作但我犯了一个错误。我不知道,但是当我使用 /stop 时,它会继续写入 'Sending'。如何解决这样的问题。
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);
});
主要问题是每次发送 /send
或 /stop
时都会创建新的间隔。因此,您的间隔会被多次创建,从而并行生成多个间隔。
像这样的东西应该可以工作:
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!');
}
});