+++ /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