ColdObservable.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. "use strict";
  2. var __extends = (this && this.__extends) || (function () {
  3. var extendStatics = function (d, b) {
  4. extendStatics = Object.setPrototypeOf ||
  5. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  6. function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
  7. return extendStatics(d, b);
  8. }
  9. return function (d, b) {
  10. extendStatics(d, b);
  11. function __() { this.constructor = d; }
  12. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  13. };
  14. })();
  15. Object.defineProperty(exports, "__esModule", { value: true });
  16. var Observable_1 = require("../Observable");
  17. var Subscription_1 = require("../Subscription");
  18. var SubscriptionLoggable_1 = require("./SubscriptionLoggable");
  19. var applyMixins_1 = require("../util/applyMixins");
  20. var ColdObservable = (function (_super) {
  21. __extends(ColdObservable, _super);
  22. function ColdObservable(messages, scheduler) {
  23. var _this = _super.call(this, function (subscriber) {
  24. var observable = this;
  25. var index = observable.logSubscribedFrame();
  26. var subscription = new Subscription_1.Subscription();
  27. subscription.add(new Subscription_1.Subscription(function () {
  28. observable.logUnsubscribedFrame(index);
  29. }));
  30. observable.scheduleMessages(subscriber);
  31. return subscription;
  32. }) || this;
  33. _this.messages = messages;
  34. _this.subscriptions = [];
  35. _this.scheduler = scheduler;
  36. return _this;
  37. }
  38. ColdObservable.prototype.scheduleMessages = function (subscriber) {
  39. var messagesLength = this.messages.length;
  40. for (var i = 0; i < messagesLength; i++) {
  41. var message = this.messages[i];
  42. subscriber.add(this.scheduler.schedule(function (_a) {
  43. var message = _a.message, subscriber = _a.subscriber;
  44. message.notification.observe(subscriber);
  45. }, message.frame, { message: message, subscriber: subscriber }));
  46. }
  47. };
  48. return ColdObservable;
  49. }(Observable_1.Observable));
  50. exports.ColdObservable = ColdObservable;
  51. applyMixins_1.applyMixins(ColdObservable, [SubscriptionLoggable_1.SubscriptionLoggable]);
  52. //# sourceMappingURL=ColdObservable.js.map