我是这个世界的新人,我正在尝试。
我正在尝试构建计时器机器人...现在我有一个小问题,我想随时停止计时器。
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);
}})
当我在不和谐频道中输入!stop时,它向我显示该消息,但并没有停止我的计时器...但这没用。
能帮我吗?
谢谢
祝你有美好的一天!
答案 0 :(得分:0)
每次运行该功能时,您都将开始一个新的间隔。另外,您的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);
}