--- /dev/null
+import { Subscriber } from '../Subscriber';
+import { async } from '../scheduler/async';
+export function sampleTime(period, scheduler = async) {
+ return (source) => source.lift(new SampleTimeOperator(period, scheduler));
+}
+class SampleTimeOperator {
+ constructor(period, scheduler) {
+ this.period = period;
+ this.scheduler = scheduler;
+ }
+ call(subscriber, source) {
+ return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));
+ }
+}
+class SampleTimeSubscriber extends Subscriber {
+ constructor(destination, period, scheduler) {
+ super(destination);
+ this.period = period;
+ this.scheduler = scheduler;
+ this.hasValue = false;
+ this.add(scheduler.schedule(dispatchNotification, period, { subscriber: this, period }));
+ }
+ _next(value) {
+ this.lastValue = value;
+ this.hasValue = true;
+ }
+ notifyNext() {
+ if (this.hasValue) {
+ this.hasValue = false;
+ this.destination.next(this.lastValue);
+ }
+ }
+}
+function dispatchNotification(state) {
+ let { subscriber, period } = state;
+ subscriber.notifyNext();
+ this.schedule(state, period);
+}
+//# sourceMappingURL=sampleTime.js.map
\ No newline at end of file