12345678910111213141516171819202122232425262728293031323334 |
- import { Observable } from '../Observable';
- import { Subscription } from '../Subscription';
- import { SubscriptionLoggable } from './SubscriptionLoggable';
- import { applyMixins } from '../util/applyMixins';
- /**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
- export class ColdObservable extends Observable {
- constructor(messages, scheduler) {
- super(function (subscriber) {
- const observable = this;
- const index = observable.logSubscribedFrame();
- subscriber.add(new Subscription(() => {
- observable.logUnsubscribedFrame(index);
- }));
- observable.scheduleMessages(subscriber);
- return subscriber;
- });
- this.messages = messages;
- this.subscriptions = [];
- this.scheduler = scheduler;
- }
- scheduleMessages(subscriber) {
- const messagesLength = this.messages.length;
- for (let i = 0; i < messagesLength; i++) {
- const message = this.messages[i];
- subscriber.add(this.scheduler.schedule(({ message, subscriber }) => { message.notification.observe(subscriber); }, message.frame, { message, subscriber }));
- }
- }
- }
- applyMixins(ColdObservable, [SubscriptionLoggable]);
- //# sourceMappingURL=ColdObservable.js.map
|