mirror of
https://github.com/Hilbis/Hilbish
synced 2025-03-13 18:00:41 +00:00
adds a map (but lets call it a pool) of all running timers. this makes us able to keep track of all running intervals and timeouts. it also means hilbish can wait for them to be done before exiting (it only waits when non interactive). this introduces the `hilbish.timers` interface, documented by `doc timers`. the `hilbish.interval` and `hilbish.timeout` functions return a timer object now.
31 lines
1.3 KiB
Plaintext
31 lines
1.3 KiB
Plaintext
If you ever want to run a piece of code on a timed interval, or want to wait
|
|
a few seconds, you don't have to rely on timing tricks, as Hilbish has a
|
|
timer API to set intervals and timeouts.
|
|
|
|
These are the simple functions `hilbish.interval` and `hilbish.timeout` (doc
|
|
accessible with `doc hilbish`). But if you want slightly more control over
|
|
them, there is the `hilbish.timers` interface. It allows you to get
|
|
a timer via ID.
|
|
|
|
# Timer Interface
|
|
## Functions
|
|
- `get(id)` -> timer: get a timer via its id
|
|
- `create(type, ms, callback)` -> timer: creates a timer, adding it to the timer pool.
|
|
`type` is the type of timer it will be. 0 is an interval, 1 is a timeout.
|
|
`ms` is the time it will run for in seconds. callback is the function called
|
|
when the timer is triggered.
|
|
|
|
# Timer Object
|
|
Those previously mentioned functions return a `timer` object, to which you can
|
|
stop and start a timer again. The functions of the timers interface also
|
|
return a timer object.
|
|
|
|
## Properties
|
|
- `duration`: amount of time the timer runs for in milliseconds
|
|
- `running`: whether the timer is running or not
|
|
- `type`: the type of timer (0 is interval, 1 is timeout)
|
|
|
|
## Functions
|
|
- `stop()`: stops the timer. returns an error if it's already stopped
|
|
- `start()`: starts the timer. returns an error if it's already started
|