# This is the same as setTimeout but then # with switched arguments for coffeescript friendlyness. # @a = 3 # delay => # console.log "The value of a is #{@a}" # or to delay not a second but a self defined amount of time in milliseconds: # delay 10000, => # console.log "The value of a is #{@a}" @delay = (time = 1000, fn, args...) -> setTimeout fn, time, args... # based on http://www.thecodeship.com/web-development/alternative-to-javascript-evil-setinterval/ # can be used as: # to keep scope and execute every second: # @a = 3 # interval => # console.log "Hi there with a is: #{@a}" # to log every 200 milliseconds without conservation of this scope: # interval 200, -> console.log "Hi there" # to execute a maximum number (30) of times: # interval 200, 30, -> console.log "Hi there" @interval = (wait = 1000, extra_args..., func)-> times = extra_args[0] interv = do (wait, times)-> -> return if times? and times-- <= 0 setTimeout interv, wait try func.call null catch e times = 0 throw e.toString() setTimeout interv, wait