Ejemplo n.º 1
0
function makeThrottleListener<T>(
  schedule: any,
  currentTime: () => number,
  period: number,
  listener: Listener<any>,
  state: any
) {
  return {
    next(value: T) {
      const lastEventTime = state.lastEventTime;
      const time = currentTime();

      const timeSinceLastEvent = time - lastEventTime;
      const throttleEvent = timeSinceLastEvent <= period;

      if (throttleEvent) {
        return;
      }

      schedule.next(listener, time, value);

      state.lastEventTime = time;
    },

    error(error: any) {
      listener.error(error);
    },

    complete() {
      schedule.complete(listener, currentTime());
    },
  };
}
Ejemplo n.º 2
0
function recordListener(currentTime: () => number, outListener: Listener<any>) {
  let entries: Array<any> = [];
  outListener.next(entries);

  return {
    next(ev: any) {
      entries = entries.concat({type: 'next', value: ev, time: currentTime()});
      outListener.next(entries);
    },

    error(error: any) {
      entries = entries.concat({type: 'error', time: currentTime(), error});

      outListener.next(entries);
      outListener.complete();
    },

    complete() {
      entries = entries.concat({type: 'complete', time: currentTime()});

      outListener.next(entries);
      outListener.complete();
    },
  };
}
Ejemplo n.º 3
0
 this.next = function next(event: Event) {
   listener.next(event);
 };
Ejemplo n.º 4
0
 this.next = function next(event: Event) {
   preventDefaultConditional(event, preventDefault);
   listener.next(event);
 };
Ejemplo n.º 5
0
 this.next = function next(event: Event) {
   event.preventDefault();
   listener.next(event);
 };