| import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; |
| export function sample(notifier) { |
| return (source) => source.lift(new SampleOperator(notifier)); |
| } |
| class SampleOperator { |
| constructor(notifier) { |
| this.notifier = notifier; |
| } |
| call(subscriber, source) { |
| const sampleSubscriber = new SampleSubscriber(subscriber); |
| const subscription = source.subscribe(sampleSubscriber); |
| subscription.add(innerSubscribe(this.notifier, new SimpleInnerSubscriber(sampleSubscriber))); |
| return subscription; |
| } |
| } |
| class SampleSubscriber extends SimpleOuterSubscriber { |
| constructor() { |
| super(...arguments); |
| this.hasValue = false; |
| } |
| _next(value) { |
| this.value = value; |
| this.hasValue = true; |
| } |
| notifyNext() { |
| this.emitValue(); |
| } |
| notifyComplete() { |
| this.emitValue(); |
| } |
| emitValue() { |
| if (this.hasValue) { |
| this.hasValue = false; |
| this.destination.next(this.value); |
| } |
| } |
| } |
| //# sourceMappingURL=sample.js.map |