| import { AsyncAction } from './AsyncAction'; | 
| import { AsyncScheduler } from './AsyncScheduler'; | 
|   | 
| /** | 
|  * | 
|  * Async Scheduler | 
|  * | 
|  * <span class="informal">Schedule task as if you used setTimeout(task, duration)</span> | 
|  * | 
|  * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript | 
|  * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating | 
|  * in intervals. | 
|  * | 
|  * If you just want to "defer" task, that is to perform it right after currently | 
|  * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`), | 
|  * better choice will be the {@link asapScheduler} scheduler. | 
|  * | 
|  * ## Examples | 
|  * Use async scheduler to delay task | 
|  * ```ts | 
|  * import { asyncScheduler } from 'rxjs'; | 
|  * | 
|  * const task = () => console.log('it works!'); | 
|  * | 
|  * asyncScheduler.schedule(task, 2000); | 
|  * | 
|  * // After 2 seconds logs: | 
|  * // "it works!" | 
|  * ``` | 
|  * | 
|  * Use async scheduler to repeat task in intervals | 
|  * ```ts | 
|  * import { asyncScheduler } from 'rxjs'; | 
|  * | 
|  * function task(state) { | 
|  *   console.log(state); | 
|  *   this.schedule(state + 1, 1000); // `this` references currently executing Action, | 
|  *                                   // which we reschedule with new state and delay | 
|  * } | 
|  * | 
|  * asyncScheduler.schedule(task, 3000, 0); | 
|  * | 
|  * // Logs: | 
|  * // 0 after 3s | 
|  * // 1 after 4s | 
|  * // 2 after 5s | 
|  * // 3 after 6s | 
|  * ``` | 
|  * | 
|  * @static true | 
|  * @name async | 
|  * @owner Scheduler | 
|  */ | 
|   | 
| export const async = new AsyncScheduler(AsyncAction); |