Improve this Doc View Source

## Overview

Mock implementation of the $interval service.

Use `$interval.flush(millis)` to move forward by `millis` milliseconds and trigger any functions scheduled to run in that time.

## Usage

`$interval(fn, delay, [count], [invokeApply], [Pass]);`

### Arguments

Param | Type | Details
--- | --- | ---
fn | function() | A function that should be called repeatedly.
delay | number | Number of milliseconds between each function call.
count (optional) | number | Number of times to repeat. If not set, or 0, will repeat indefinitely. (default: 0)
invokeApply (optional) | boolean | If set to `false` skips model dirty checking, otherwise will invoke `fn` within the $apply block. (default: true)
Pass (optional) | * | additional parameters to the executed function.

### Returns

promise | A promise which will be notified on each iteration.

## Methods

- ###

  `cancel(promise);`

  Cancels a task associated with the `promise`.

  #### Parameters

  Param | Type | Details
  --- | --- | ---
  promise | promise | A promise from calling the `$interval` function.

  #### Returns

  boolean | Returns `true` if the task was successfully cancelled.

- ###

  `flush([millis]);`

  Runs interval tasks scheduled to be run in the next `millis` milliseconds.

  #### Parameters

  Param | Type | Details
  --- | --- | ---
  millis (optional) | number | maximum timeout amount to flush up until.

  #### Returns

  number | The amount of time moved forward.