1

所以我有一个我正在写的hubot插件,它会在不同的时间间隔提醒用户做某事。我有一个 setInterval 函数,它每 5 分钟运行一次来​​做某事。问题是当我使用“重新加载所有脚本”命令(从这里:https ://github.com/github/hubot-scripts/blob/master/src/scripts/reload.coffee )它开始一个新的间隔而不清除旧的。我不确定如何最好地清除旧的间隔。重新加载脚本时,我的所有指针都会被覆盖。

4

1 回答 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 回答