Framework
Version
Debouncer API Referenz
Throttler API Referenz
Rate Limiter API Referenz
Queue API Referenz
Batcher API Referenz

Throttler

Klasse: Throttler<TFn>

Definiert in: throttler.ts:137

Eine Klasse, die eine gedrosselte Funktion erstellt.

Drosselung stellt sicher, dass eine Funktion höchstens einmal innerhalb eines bestimmten Zeitfensters aufgerufen wird. Im Gegensatz zum Debouncing, das auf eine Pause bei den Aufrufen wartet, garantiert die Drosselung eine konsistente Ausführungszeit unabhängig von der Aufrufhäufigkeit.

Unterstützt sowohl Ausführung am Anfang als auch am Ende

  • Anfang: Sofort beim ersten Aufruf ausführen (Standard: true)
  • Ende: Nach Ablauf der Wartezeit ausführen, wenn während der Drosselung aufgerufen (Standard: true)

Für das Zusammenfassen von schnellen Ereignissen, bei denen Sie nur am letzten Aufruf interessiert sind, sollten Sie Debouncer verwenden.

Zustandsverwaltung

  • Verwendet TanStack Store für reaktives Zustandsmanagement
  • Verwenden Sie initialState, um anfängliche Zustandswerte bei der Erstellung des Throttlers bereitzustellen.
  • Verwenden Sie den Rückruf onExecute, um auf die Funktionsausführung zu reagieren und benutzerdefinierte Logik zu implementieren
  • Der Zustand umfasst die Anzahl der Ausführungen, die letzte Ausführungszeit, den ausstehenden Status und mehr.
  • Der Zustand kann über throttler.store.state abgerufen werden, wenn die Klasse direkt verwendet wird.
  • Bei der Verwendung von Framework-Adaptern (React/Solid) wird der Zustand von throttler.state abgerufen.

Beispiel

ts
const throttler = new Throttler(
  (id: string) => api.getData(id),
  { wait: 1000 } // Execute at most once per second
);

// First call executes immediately
throttler.maybeExecute('123');

// Subsequent calls within 1000ms are throttled
throttler.maybeExecute('123'); // Throttled
const throttler = new Throttler(
  (id: string) => api.getData(id),
  { wait: 1000 } // Execute at most once per second
);

// First call executes immediately
throttler.maybeExecute('123');

// Subsequent calls within 1000ms are throttled
throttler.maybeExecute('123'); // Throttled

Typparameter

TFn erweitert AnyFunction

Konstruktoren

new Throttler()

ts
new Throttler<TFn>(fn, initialOptions): Throttler<TFn>
new Throttler<TFn>(fn, initialOptions): Throttler<TFn>

Definiert in: throttler.ts:145

Parameter

fn

TFn

initialOptions

ThrottlerOptions<TFn>

Gibt zurück

Throttler<TFn>

Eigenschaften

fn

ts
fn: TFn;
fn: TFn;

Definiert in: throttler.ts:146


key

ts
key: undefined | string;
key: undefined | string;

Definiert in: throttler.ts:141


optionen

ts
options: ThrottlerOptions<TFn>;
options: ThrottlerOptions<TFn>;

Definiert in: throttler.ts:142


store

ts
readonly store: Store<Readonly<ThrottlerState<TFn>>>;
readonly store: Store<Readonly<ThrottlerState<TFn>>>;

Definiert in: throttler.ts:138

Methoden

cancel()

ts
cancel(): void
cancel(): void

Definiert in: throttler.ts:305

Bricht jede ausstehende nachfolgende Ausführung ab und löscht den internen Zustand.

Wenn eine nachfolgende Ausführung geplant ist (aufgrund der Drosselung mit trailing=true), wird diese Ausführung verhindert. Der interne Timeout und die gespeicherten Argumente werden gelöscht.

Hat keine Auswirkung, wenn keine Ausführung aussteht.

Gibt zurück

void


flush()

ts
flush(): void
flush(): void

Definiert in: throttler.ts:283

Verarbeitet die aktuelle ausstehende Ausführung sofort

Gibt zurück

void


maybeExecute()

ts
maybeExecute(...args): void
maybeExecute(...args): void

Definiert in: throttler.ts:224

Versucht, die gedrosselte Funktion auszuführen. Das Ausführungsverhalten hängt von den Throttler-Optionen ab

  • Wenn seit der letzten Ausführung genügend Zeit vergangen ist (>= Wartezeit)

    • Mit leading=true: Wird sofort ausgeführt
    • Mit leading=false: Wartet auf die nächste nachfolgende Ausführung
  • Wenn innerhalb der Wartezeit

    • Mit trailing=true: Plant die Ausführung für das Ende der Wartezeit
    • Mit trailing=false: Verwirft die Ausführung

Parameter

args

...Parameters<TFn>

Gibt zurück

void

Beispiel

ts
const throttled = new Throttler(fn, { wait: 1000 });

// First call executes immediately
throttled.maybeExecute('a', 'b');

// Call during wait period - gets throttled
throttled.maybeExecute('c', 'd');
const throttled = new Throttler(fn, { wait: 1000 });

// First call executes immediately
throttled.maybeExecute('a', 'b');

// Call during wait period - gets throttled
throttled.maybeExecute('c', 'd');

reset()

ts
reset(): void
reset(): void

Definiert in: throttler.ts:316

Setzt den Zustand des Throttlers auf seine Standardwerte zurück.

Gibt zurück

void


setOptions()

ts
setOptions(newOptions): void
setOptions(newOptions): void

Definiert in: throttler.ts:166

Aktualisiert die Optionen des Throttlers.

Parameter

newOptions

Partial<ThrottlerOptions<TFn>>

Gibt zurück

void

Unsere Partner
Code Rabbit
Unkey
Bytes abonnieren

Ihre wöchentliche Dosis JavaScript-Nachrichten. Jeden Montag kostenlos an über 100.000 Entwickler geliefert.

Bytes

Kein Spam. Jederzeit kündbar.

Bytes abonnieren

Ihre wöchentliche Dosis JavaScript-Nachrichten. Jeden Montag kostenlos an über 100.000 Entwickler geliefert.

Bytes

Kein Spam. Jederzeit kündbar.