mirror of
https://github.com/HelloZeroNet/ZeroNet.git
synced 2023-12-14 04:33:03 +01:00
15 lines
379 B
CoffeeScript
15 lines
379 B
CoffeeScript
limits = {}
|
|
call_after_interval = {}
|
|
window.RateLimit = (interval, fn) ->
|
|
if not limits[fn]
|
|
call_after_interval[fn] = false
|
|
fn() # First call is not delayed
|
|
limits[fn] = setTimeout (->
|
|
if call_after_interval[fn]
|
|
fn()
|
|
delete limits[fn]
|
|
delete call_after_interval[fn]
|
|
), interval
|
|
else # Called within iterval, delay the call
|
|
call_after_interval[fn] = true
|