【问题标题】:Telegram bot which repeats send message with some time?有一段时间重复发送消息的电报机器人?
【发布时间】:2021-03-09 02:41:32
【问题描述】:

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

【问题讨论】:

    标签: javascript node.js telegram telegram-bot telegraf


    【解决方案1】:

    主要问题是每次发送/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!');
      }
    });
    

    【讨论】:

      猜你喜欢
      • 2017-03-19
      • 2017-09-01
      • 2016-03-11
      • 1970-01-01
      • 2021-01-01
      • 2019-12-31
      • 1970-01-01
      • 2019-10-30
      • 2017-05-11
      相关资源
      最近更新 更多