是否有必要在递归调用的计时器中clearTimeout?

时间:2014-10-23 06:58:41

标签: javascript recursion memory-leaks coffeescript

是否有必要在Coffeescript中的递归调用函数内调用clearTimeout()

我担心的是,如果此函数每秒运行多次,是否调用clearTimeout()可能会导致某种内存泄漏。我的想法是JS垃圾收集器处理这个,但想要仔细检查。

我正在研究的websockets / socket.io实现的一个人为的例子:

socket.on 'dataReceived', => @_recursive_fn()

_recursive_fn: ->
  @timer = setTimeout (=>
    clearTimeout(@timer) # is this necessary?
    @_recursive_fn() if some_condition == true
  ), 30

1 个答案:

答案 0 :(得分:3)

不,setTimeout安排一次性活动。事件发生后,具有该句柄的clearTimeout是无操作。