簡體   English   中英

有一段時間重復發送消息的電報機器人?

[英]Telegram bot which repeats send message with some time?

ClearInterval 不工作或工作,但我犯了一個錯誤。 我不知道,但是當我使用 /stop 時,它會繼續寫“發送”。 如何解決這樣的問題。

 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!');
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM