| import { Subscriber } from '../Subscriber'; |
| import { Notification } from '../Notification'; |
| export function observeOn(scheduler, delay = 0) { |
| return function observeOnOperatorFunction(source) { |
| return source.lift(new ObserveOnOperator(scheduler, delay)); |
| }; |
| } |
| export class ObserveOnOperator { |
| constructor(scheduler, delay = 0) { |
| this.scheduler = scheduler; |
| this.delay = delay; |
| } |
| call(subscriber, source) { |
| return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay)); |
| } |
| } |
| export class ObserveOnSubscriber extends Subscriber { |
| constructor(destination, scheduler, delay = 0) { |
| super(destination); |
| this.scheduler = scheduler; |
| this.delay = delay; |
| } |
| static dispatch(arg) { |
| const { notification, destination } = arg; |
| notification.observe(destination); |
| this.unsubscribe(); |
| } |
| scheduleMessage(notification) { |
| const destination = this.destination; |
| destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination))); |
| } |
| _next(value) { |
| this.scheduleMessage(Notification.createNext(value)); |
| } |
| _error(err) { |
| this.scheduleMessage(Notification.createError(err)); |
| this.unsubscribe(); |
| } |
| _complete() { |
| this.scheduleMessage(Notification.createComplete()); |
| this.unsubscribe(); |
| } |
| } |
| export class ObserveOnMessage { |
| constructor(notification, destination) { |
| this.notification = notification; |
| this.destination = destination; |
| } |
| } |
| //# sourceMappingURL=observeOn.js.map |