我想停止计时器(不和谐)



我是这个世界的新手,我正在尝试一些事情。

我试图建立一个计时器机器人...现在我有一个小问题,我想随时停止我的计时器。

bot.on('message', message => {
let timer = setInterval(() => {
    if (message.content.startsWith('!start'))
        message.channel.send("I print something");
}, 10 * 1000)
if (message.content.startsWith('!stop')) {
    message.channel.send("Interaval Cleared");
    clearInterval(timer);
}})

当我在 discord 频道中键入 !stop 时,它向我显示消息,但它不会停止我的计时器......我尝试了退货;但它没有用。

你能帮我吗?

谢谢

祝你今天开心!

每次运行函数时都会开始一个新的间隔。此外,您的timer值的作用域为每个函数调用,而不是在调用之间"共享",您需要使其在它们之间可用。您想要的行为应如下所示:

bot = {}
bot.timer = 0; // ensures clearInterval doesn't throw an error if bot.timer hasn't been set
bot.listen = message =>{
    if(message == 'start'){
        clearInterval(bot.timer);   // stops the interval if it been previously started
        bot.timer = setInterval(()=>console.log('I print something'),1000)
    }
    if(message == 'stop') clearInterval(bot.timer);
}

最新更新