# Interface hilbish.timers

timeout and interval API

### Introduction

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 and control them.

All functions documented with the `Timer` type refer to a Timer object.

An example of usage:

    local t = hilbish.timers.create(hilbish.timers.TIMEOUT, 5000, function()
    	print 'hello!'
    end)

    t:start()
    print(t.running) // true

### Interface fields

- `INTERVAL`: Constant for an interval timer type
- `TIMEOUT`: Constant for a timeout timer type

### Functions

#### create(type, time, callback) -> Timer

Creates a timer that runs based on the specified `time` in milliseconds. The `type` can either be `hilbish.timers.INTERVAL` or `hilbish.timers.TIMEOUT`

#### get(id) -> Timer

Retrieves a timer via its ID.

### Types

### Timer

The Job type describes a Hilbish timer.

#### Properties

- `type`: What type of timer it is
- `running`: If the timer is running
- `duration`: The duration in milliseconds that the timer will run

#### Methods

##### start()

Starts a timer.

##### stop()

Stops a timer.