我是这个世界的新手,我正在尝试一些事情。
我试图建立一个计时器机器人...现在我有一个小问题,我想随时停止我的计时器。
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);
}