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

throttle

Funktion: throttle()

ts
function throttle<TFn>(fn, initialOptions): (...args) => void
function throttle<TFn>(fn, initialOptions): (...args) => void

Definiert in: throttler.ts:355

Erstellt eine gedrosselte Funktion, die begrenzt, wie oft die bereitgestellte Funktion ausgeführt werden kann.

Drosselung stellt sicher, dass eine Funktion höchstens einmal innerhalb eines bestimmten Zeitfensters ausgeführt wird, unabhängig davon, wie oft sie aufgerufen wird. Dies ist nützlich für die Ratenbegrenzung teurer Operationen oder UI-Aktualisierungen.

Die gedrosselte Funktion kann so konfiguriert werden, dass sie am Anfang und/oder am Ende des Drosselungsfensters über Optionen ausgeführt wird.

Für die Handhabung von Ereignisstößen sollten Sie stattdessen debounce() verwenden. Für harte Ausführungslimits sollten Sie rateLimit() verwenden.

Zustandsverwaltung

  • Verwendet TanStack Store für reaktives Zustandsmanagement
  • Verwenden Sie initialState, um anfängliche Zustands-Werte 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 die Eigenschaft store.state der zugrunde liegenden Throttler-Instanz abgerufen werden
  • Bei Verwendung von Framework-Adaptern (React/Solid) wird der Zustand aus der `state`-Eigenschaft des Hooks abgerufen

Typparameter

TFn erweitert AnyFunction

Parameter

fn

TFn

initialOptions

ThrottlerOptions<TFn>

Gibt zurück

Funktion

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');

Beispiel

ts
// Basic throttling - max once per second
const throttled = throttle(updateUI, { wait: 1000 });

// Configure leading/trailing execution
const throttled = throttle(saveData, {
  wait: 2000,
  leading: true,  // Execute immediately on first call
  trailing: true  // Execute again after delay if called during wait
});
// Basic throttling - max once per second
const throttled = throttle(updateUI, { wait: 1000 });

// Configure leading/trailing execution
const throttled = throttle(saveData, {
  wait: 2000,
  leading: true,  // Execute immediately on first call
  trailing: true  // Execute again after delay if called during wait
});
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.