range.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.range = void 0;
  4. var Observable_1 = require("../Observable");
  5. var empty_1 = require("./empty");
  6. function range(start, count, scheduler) {
  7. if (count == null) {
  8. count = start;
  9. start = 0;
  10. }
  11. if (count <= 0) {
  12. return empty_1.EMPTY;
  13. }
  14. var end = count + start;
  15. return new Observable_1.Observable(scheduler
  16. ?
  17. function (subscriber) {
  18. var n = start;
  19. return scheduler.schedule(function () {
  20. if (n < end) {
  21. subscriber.next(n++);
  22. this.schedule();
  23. }
  24. else {
  25. subscriber.complete();
  26. }
  27. });
  28. }
  29. :
  30. function (subscriber) {
  31. var n = start;
  32. while (n < end && !subscriber.closed) {
  33. subscriber.next(n++);
  34. }
  35. subscriber.complete();
  36. });
  37. }
  38. exports.range = range;
  39. //# sourceMappingURL=range.js.map