--- /dev/null
+import { OuterSubscriber } from '../OuterSubscriber';
+import { subscribeToResult } from '../util/subscribeToResult';
+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(subscribeToResult(sampleSubscriber, this.notifier));
+ return subscription;
+ }
+}
+class SampleSubscriber extends OuterSubscriber {
+ constructor() {
+ super(...arguments);
+ this.hasValue = false;
+ }
+ _next(value) {
+ this.value = value;
+ this.hasValue = true;
+ }
+ notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
+ this.emitValue();
+ }
+ notifyComplete() {
+ this.emitValue();
+ }
+ emitValue() {
+ if (this.hasValue) {
+ this.hasValue = false;
+ this.destination.next(this.value);
+ }
+ }
+}
+//# sourceMappingURL=sample.js.map
\ No newline at end of file