| 12345678910111213141516171819202122232425262728293031323334 | 
							- import { Observable } from '../Observable';
 
- import { async as asyncScheduler } from '../scheduler/async';
 
- import { isScheduler } from '../util/isScheduler';
 
- import { isValidDate } from '../util/isDate';
 
- export function timer(dueTime = 0, intervalOrScheduler, scheduler = asyncScheduler) {
 
-     let intervalDuration = -1;
 
-     if (intervalOrScheduler != null) {
 
-         if (isScheduler(intervalOrScheduler)) {
 
-             scheduler = intervalOrScheduler;
 
-         }
 
-         else {
 
-             intervalDuration = intervalOrScheduler;
 
-         }
 
-     }
 
-     return new Observable((subscriber) => {
 
-         let due = isValidDate(dueTime) ? +dueTime - scheduler.now() : dueTime;
 
-         if (due < 0) {
 
-             due = 0;
 
-         }
 
-         let n = 0;
 
-         return scheduler.schedule(function () {
 
-             if (!subscriber.closed) {
 
-                 subscriber.next(n++);
 
-                 if (0 <= intervalDuration) {
 
-                     this.schedule(undefined, intervalDuration);
 
-                 }
 
-                 else {
 
-                     subscriber.complete();
 
-                 }
 
-             }
 
-         }, due);
 
-     });
 
- }
 
- //# sourceMappingURL=timer.js.map
 
 
  |