所以我有一个我正在写的hubot插件,它会在不同的时间间隔提醒用户做某事。我有一个 setInterval 函数,它每 5 分钟运行一次来做某事。问题是当我使用“重新加载所有脚本”命令(从这里:https ://github.com/github/hubot-scripts/blob/master/src/scripts/reload.coffee )它开始一个新的间隔而不清除旧的。我不确定如何最好地清除旧的间隔。重新加载脚本时,我的所有指针都会被覆盖。
1 回答
1
Mark Lorenz最终向我展示了解决方案。我在重新加载脚本时在机器人上发出了一个事件,然后在脚本中监听该事件并终止任何超时。
在 reload.coffee ( PR 提交)
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
于 2014-07-08T16:24:01.147 回答