HotObservable.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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 Subject_1 = require("../Subject");
  17. var Subscription_1 = require("../Subscription");
  18. var SubscriptionLoggable_1 = require("./SubscriptionLoggable");
  19. var applyMixins_1 = require("../util/applyMixins");
  20. var HotObservable = (function (_super) {
  21. __extends(HotObservable, _super);
  22. function HotObservable(messages, scheduler) {
  23. var _this = _super.call(this) || this;
  24. _this.messages = messages;
  25. _this.subscriptions = [];
  26. _this.scheduler = scheduler;
  27. return _this;
  28. }
  29. HotObservable.prototype._subscribe = function (subscriber) {
  30. var subject = this;
  31. var index = subject.logSubscribedFrame();
  32. var subscription = new Subscription_1.Subscription();
  33. subscription.add(new Subscription_1.Subscription(function () {
  34. subject.logUnsubscribedFrame(index);
  35. }));
  36. subscription.add(_super.prototype._subscribe.call(this, subscriber));
  37. return subscription;
  38. };
  39. HotObservable.prototype.setup = function () {
  40. var subject = this;
  41. var messagesLength = subject.messages.length;
  42. for (var i = 0; i < messagesLength; i++) {
  43. (function () {
  44. var message = subject.messages[i];
  45. subject.scheduler.schedule(function () { message.notification.observe(subject); }, message.frame);
  46. })();
  47. }
  48. };
  49. return HotObservable;
  50. }(Subject_1.Subject));
  51. exports.HotObservable = HotObservable;
  52. applyMixins_1.applyMixins(HotObservable, [SubscriptionLoggable_1.SubscriptionLoggable]);
  53. //# sourceMappingURL=HotObservable.js.map