Angular's wrapper for window.setTimeout. The fn function is wrapped into a try/catch
block and delegates any exceptions to
$exceptionHandler service.
The return value of registering a timeout function is a promise, which will be resolved when the timeout is reached and the timeout function is executed.
To cancel a timeout request, call $timeout.cancel(promise).
In tests you can use $timeout.flush() to
synchronously flush the queue of deferred functions.
$timeout(fn, [delay], [invokeApply]);
| Param | Type | Details | 
|---|---|---|
| fn | function() | A function, whose execution should be delayed. | 
| delay (optional) | number | Delay in milliseconds. (default: 0) | 
| invokeApply (optional) | boolean | If set to  (default: true) | 
| Promise | Promise that will be resolved when the timeout is reached. The value this
  promise will be resolved with is the return value of the  | 
cancel([promise]);
Cancels a task associated with the promise. As a result of this, the promise will be
resolved with a rejection.
| Param | Type | Details | 
|---|---|---|
| promise (optional) | Promise | Promise returned by the  | 
| boolean | Returns  |