是否有必要在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
答案 0 :(得分:3)
不,setTimeout
安排一次性活动。事件发生后,具有该句柄的clearTimeout
是无操作。