Internationalisation
Bundled Plugins API
deferred
This extension makes it simple to defer multiple actions after a delay from the initial execution. Unlike hs.timer.delayed, the delay will not be extended with subsequent run() calls, but the delay will trigger again if run() is called again later.
For example:
1
local update = deferred.new(1) -- defer 1 second
2
:action(function() print("Updated!"") end)
3
-- do something
4
update()
5
-- do something else
6
update()
7
-- one second after the inital call to `update()`, one "Updated!" is printed.
Copied!

API Overview

  • Constructors - API calls which return an object, typically one that offers API methods
  • new
  • Methods - API calls which can only be made on an object returned by a constructor
  • action
  • delay
  • run
  • stop
  • waiting

API Documentation

Constructors

new

Signature
cp.deferred.new(delay) -> cp.deferred
Type
Constructor
Description
Creates a new defer instance, which will trigger any added actions by a set delay after
Parameters
  • delay - The number of seconds to delay when run() is initally called.
Returns
  • The new cp.deferred instance.

Methods

action

Signature
cp.deferred:action(actionFn) -> self
Type
Method
Description
Adds the action the the list that will be called when the timer goes off.
Parameters
  • The callable action.

delay

| Signature | cp.deferred:delay([value]) -> self | number | | -----------------------------------------------------|---------------------------------------------------------------------------------------------------------| | Type | Method | | Description | Sets/gets the delay period. If no value is provided, the current delay is returned. | | Parameters |
  • value - the new delay value.
| | Returns |
  • The cp.deferred instance if a new value is provided, or the current delay if not.
|

run

Signature
cp.deferred:run() -> self
Type
Method
Description
Ensures that the actions will run after the delay.
Parameters
  • None
Returns
  • The cp.deferred instance.
| Signature | cp.deferred:secondsRemaining() -> number | nil | | -----------------------------------------------------|---------------------------------------------------------------------------------------------------------| | Type | Method | | Description | Returns the number of seconds until the next execution, or nil if it's not running. | | Parameters |
  • None
| | Returns |
  • The number of seconds until execution.
|

stop

Signature
cp.deferred:stop() -> self
Type
Method
Description
Stops any execution of any deferred actions, if it is currently running.
Parameters
  • None
Returns
  • The deferred timer.

waiting

Signature
cp.deferred:waiting() -> boolean
Type
Method
Description
Checks if the defer is currently waiting to run.
Parameters
  • None
Returns
  • true if the deferred action is waiting to execute.
Last modified 1mo ago