Buckets:
| import { Subject } from '../Subject'; | |
| import { Subscription } from '../Subscription'; | |
| import { SubscriptionLoggable } from './SubscriptionLoggable'; | |
| import { applyMixins } from '../util/applyMixins'; | |
| import { observeNotification } from '../Notification'; | |
| export class HotObservable extends Subject { | |
| constructor(messages, scheduler) { | |
| super(); | |
| this.messages = messages; | |
| this.subscriptions = []; | |
| this.scheduler = scheduler; | |
| } | |
| _subscribe(subscriber) { | |
| const subject = this; | |
| const index = subject.logSubscribedFrame(); | |
| const subscription = new Subscription(); | |
| subscription.add(new Subscription(() => { | |
| subject.logUnsubscribedFrame(index); | |
| })); | |
| subscription.add(super._subscribe(subscriber)); | |
| return subscription; | |
| } | |
| setup() { | |
| const subject = this; | |
| const messagesLength = subject.messages.length; | |
| for (let i = 0; i < messagesLength; i++) { | |
| (() => { | |
| const { notification, frame } = subject.messages[i]; | |
| subject.scheduler.schedule(() => { | |
| observeNotification(notification, subject); | |
| }, frame); | |
| })(); | |
| } | |
| } | |
| } | |
| applyMixins(HotObservable, [SubscriptionLoggable]); | |
| //# sourceMappingURL=HotObservable.js.map |
Xet Storage Details
- Size:
- 1.34 kB
- Xet hash:
- 9b3b919ba63bf24d150b4f5e09c4058f5a2cbe1ce13a1a1d063336c661338140
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.