@johngw/stream
Version:
Reactive programming tools using the WHATWG Streams API.
46 lines • 1.27 kB
TypeScript
import type { DebounceBehavior } from './Behavior.js';
import type { DebounceState } from './State.js';
/**
* @group Transformers
*/
export interface DebounceBackOffBehaviorOptions {
/**
* The back-off increment formular
*/
inc(currentMS: number): number;
/**
* An optional maximum time to reach.
*
* @default Number.MAX_SAFE_INTEGER
*/
max?: number;
}
/**
* A behavior that will increase the debounce time whenever events
* are received within the current time. It's best to be used in
* conjunction with the {@link DebounceTrailingBehavior:class}
* or the {@link DebounceLeadingBehavior:class}.
*
* @group Transformers
* @see {@link debounce:function}
* @example
* --a--b---c----d----|
*
* debounce(5, [
* new DebounceBackOffBehavior({ inc: (ms) => ms * 2 }),
* new DebounceTrailingBehavior(),
* ])
*
* --T5-T10-T20--T40-d-
*/
export declare class DebounceBackOffBehavior<T> implements DebounceBehavior<T> {
#private;
constructor({ inc, max, }: DebounceBackOffBehaviorOptions);
init(state: DebounceState): void;
preTimer(state: DebounceState): {
ms: number;
queued: boolean;
timer?: number | NodeJS.Timeout;
};
}
//# sourceMappingURL=BackOffBehavior.d.ts.map