12345678910111213141516171819202122232425262728293031323334353637383940 |
- import { Observable } from '../Observable';
- export function range(start = 0, count = 0, scheduler) {
- return new Observable(subscriber => {
- let index = 0;
- let current = start;
- if (scheduler) {
- return scheduler.schedule(dispatch, 0, {
- index, count, start, subscriber
- });
- }
- else {
- do {
- if (index++ >= count) {
- subscriber.complete();
- break;
- }
- subscriber.next(current++);
- if (subscriber.closed) {
- break;
- }
- } while (true);
- }
- return undefined;
- });
- }
- export function dispatch(state) {
- const { start, index, count, subscriber } = state;
- if (index >= count) {
- subscriber.complete();
- return;
- }
- subscriber.next(start);
- if (subscriber.closed) {
- return;
- }
- state.index = index + 1;
- state.start = start + 1;
- this.schedule(state);
- }
- //# sourceMappingURL=range.js.map
|