Home Manual Reference Source Test Repository

es6/scheduler/async.js

import { AsyncAction } from './AsyncAction';
import { AsyncScheduler } from './AsyncScheduler';
/**
 *
 * Async 调度器
 *
 * <span class="informal">就像你使用过的 setTimeout(task, duration) 那样调度任务</span>
 *
 * `async` 调度器异步地调度任务,通过将它们放入 JavaScript 事件循环中。它被认为是适时地延时任务或者
 * 按时间间隔重复调度任务的最佳实践。
 *
 * 如果你只是想"延时"任务,即在当前执行同步代码结束后执行它(通常会用`setTimeout(deferredTask, 0)`实现),
 * {@link asap} 调度器会是更好的选择。
 *
 * @example <caption>使用 async 调度器来延时任务</caption>
 * const task = () => console.log('it works!');
 *
 * Rx.Scheduler.async.schedule(task, 2000);
 *
 * // 2秒后的输出:
 * // "it works!"
 *
 *
 * @example <caption>使用 async 调度器按时间间隔重复执行任务</caption>
 * function task(state) {
 *   console.log(state);
 *   this.schedule(state + 1, 1000); // `this` 指向当前执行的 Action,
 *                                   // 我们用新的状态和延时来重新调度它
 * }
 *
 * Rx.Scheduler.async.schedule(task, 3000, 0);
 *
 * // 日志:
 * // 0 after 3s
 * // 1 after 4s
 * // 2 after 5s
 * // 3 after 6s
 *
 * @static true
 * @name async
 * @owner Scheduler
 */
export const async = new AsyncScheduler(AsyncAction);
//# sourceMappingURL=async.js.map