所以我有一个hubot插件,我写的是以不同的时间间隔提醒用户做某事。我有一个setInterval函数,每5分钟运行一次。问题是当我使用“重新加载所有脚本”时。命令(从这里:https://github.com/github/hubot-scripts/blob/master/src/scripts/reload.coffee)它开始一个新的间隔而不清除旧的间隔。我不确定如何最好地清除旧间隔。重新加载脚本时,我的所有指针都会被覆盖。
答案 0 :(得分:1)
Mark Lorenz最终向我展示了解决方案。我在重新加载脚本时在机器人上发出了一个事件,然后在脚本中侦听了该事件并杀死了任何超时。
在reload.coffee(PR Submitted)
中reloadAllScripts = (msg, success, error) ->
robot = msg.robot
robot.emit('reload_scripts')
scriptsPath = Path.resolve ".", "scripts"
robot.load scriptsPath
在我的剧本中
module.exports = (robot) ->
robot.on 'reload_scripts', () ->
clearInterval(Timer) if Timer