UNPKG

@reactivex/rxjs

Version:

Reactive Extensions for modern JavaScript

56 lines 1.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var AsyncAction_1 = require("./AsyncAction"); var AsyncScheduler_1 = require("./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 * ``` */ exports.asyncScheduler = new AsyncScheduler_1.AsyncScheduler(AsyncAction_1.AsyncAction); /** * @deprecated renamed. Use {@link asyncScheduler} */ exports.async = exports.asyncScheduler; //# sourceMappingURL=async.js.map