Function rateMinimum

Ensures that whatToCall is executed with a given tempo.

const rm = rateMinimum({
fallback: () => {
return Math.random();
},
whatToCall: (value:number) => {
console.log(value);
},
interval: { secs: 10 }
});

// Invokes `whatToCall`, resetting timeout
rm(10);

// If we don't call rm() before 'interval' has elapsed,
// 'fallback' will be invoked

A practical use for this is to update calculations based on firing of events as well as when they don't fire. For example user input.

// Average distances
const average = movingAverageLight();
const rm = rateMinimum({
interval: { secs: 1 },
whatToCall: (distance: number) => {
average(distance);
},
// If there are no pointermove events, distance is 0
fallback() {
return 0;
}
})

// Report total movemeent
document.addEventListener(`pointermove`, event => {
rm(event.movementX + event.movementY);
});
  • Type Parameters

    • TInput

    Parameters

    • options: Readonly<{
          abort?: AbortSignal;
          fallback: (() => TInput);
          interval: Interval;
          whatToCall: ((args: TInput) => void);
      }>

    Returns ((args: TInput) => void)

      • (args): void
      • Parameters

        Returns void