123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- var __extends = (this && this.__extends) || function (d, b) {
- for (var p in b)
- if (b.hasOwnProperty(p))
- d[p] = b[p];
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
- import { isNumeric } from '../util/isNumeric';
- import { Observable } from '../Observable';
- import { async } from '../scheduler/async';
- import { isScheduler } from '../util/isScheduler';
- import { isDate } from '../util/isDate';
- export var TimerObservable = ( function (_super) {
- __extends(TimerObservable, _super);
- function TimerObservable(dueTime, period, scheduler) {
- if (dueTime === void 0) {
- dueTime = 0;
- }
- _super.call(this);
- this.period = -1;
- this.dueTime = 0;
- if (isNumeric(period)) {
- this.period = Number(period) < 1 && 1 || Number(period);
- }
- else if (isScheduler(period)) {
- scheduler = period;
- }
- if (!isScheduler(scheduler)) {
- scheduler = async;
- }
- this.scheduler = scheduler;
- this.dueTime = isDate(dueTime) ?
- (+dueTime - this.scheduler.now()) :
- dueTime;
- }
-
- TimerObservable.create = function (initialDelay, period, scheduler) {
- if (initialDelay === void 0) {
- initialDelay = 0;
- }
- return new TimerObservable(initialDelay, period, scheduler);
- };
- TimerObservable.dispatch = function (state) {
- var index = state.index, period = state.period, subscriber = state.subscriber;
- var action = this;
- subscriber.next(index);
- if (subscriber.closed) {
- return;
- }
- else if (period === -1) {
- return subscriber.complete();
- }
- state.index = index + 1;
- action.schedule(state, period);
- };
- TimerObservable.prototype._subscribe = function (subscriber) {
- var index = 0;
- var _a = this, period = _a.period, dueTime = _a.dueTime, scheduler = _a.scheduler;
- return scheduler.schedule(TimerObservable.dispatch, dueTime, {
- index: index, period: period, subscriber: subscriber
- });
- };
- return TimerObservable;
- }(Observable));
|