Definiert in: async-debouncer.ts:188
Eine Klasse, die eine asynchron verzögerte Funktion erstellt.
Debouncing stellt sicher, dass eine Funktion erst ausgeführt wird, nachdem eine bestimmte Verzögerung seit ihrer letzten Ausführung verstrichen ist. Jede neue Ausführung setzt den Verzögerungstimer zurück. Dies ist nützlich für die Verarbeitung häufiger Ereignisse wie Fenstergrößenänderungen oder Eingabeänderungen, bei denen Sie den Handler erst ausführen möchten, nachdem die Ereignisse aufgehört haben aufzutreten.
Im Gegensatz zu Throttling, das die Ausführung in regelmäßigen Abständen zulässt, verhindert Debouncing jede Ausführung, bis die Funktion für den angegebenen Verzögerungszeitraum nicht mehr aufgerufen wird.
Im Gegensatz zum nicht-asynchronen Debouncer unterstützt diese asynchrone Version die Rückgabe von Werten aus der debounced-Funktion, was sie ideal für API-Aufrufe und andere asynchrone Operationen macht, bei denen Sie das Ergebnis des maybeExecute-Aufrufs anstelle des Setzens des Ergebnisses in einer Zustandsvariable innerhalb der debounced-Funktion wünschen.
Fehlerbehandlung
Zustandsverwaltung
const asyncDebouncer = new AsyncDebouncer(async (value: string) => {
const results = await searchAPI(value);
return results; // Return value is preserved
}, {
wait: 500,
onError: (error) => {
console.error('Search failed:', error);
}
});
// Called on each keystroke but only executes after 500ms of no typing
// Returns the API response directly
const results = await asyncDebouncer.maybeExecute(inputElement.value);
const asyncDebouncer = new AsyncDebouncer(async (value: string) => {
const results = await searchAPI(value);
return results; // Return value is preserved
}, {
wait: 500,
onError: (error) => {
console.error('Search failed:', error);
}
});
// Called on each keystroke but only executes after 500ms of no typing
// Returns the API response directly
const results = await asyncDebouncer.maybeExecute(inputElement.value);
• TFn erbt von AnyAsyncFunction
new AsyncDebouncer<TFn>(fn, initialOptions): AsyncDebouncer<TFn>
new AsyncDebouncer<TFn>(fn, initialOptions): AsyncDebouncer<TFn>
Definiert in: async-debouncer.ts:200
TFn
AsyncDebouncer<TFn>
fn: TFn;
fn: TFn;
Definiert in: async-debouncer.ts:201
key: string;
key: string;
Definiert in: async-debouncer.ts:192
options: AsyncDebouncerOptions<TFn>;
options: AsyncDebouncerOptions<TFn>;
Definiert in: async-debouncer.ts:193
readonly store: Store<Readonly<AsyncDebouncerState<TFn>>>;
readonly store: Store<Readonly<AsyncDebouncerState<TFn>>>;
Definiert in: async-debouncer.ts:189
cancel(): void
cancel(): void
Definiert in: async-debouncer.ts:410
Bricht jede ausstehende Ausführung ab oder bricht jede laufende Ausführung ab
void
flush(): Promise<undefined | ReturnType<TFn>>
flush(): Promise<undefined | ReturnType<TFn>>
Definiert in: async-debouncer.ts:362
Verarbeitet die aktuelle ausstehende Ausführung sofort
Promise<undefined | ReturnType<TFn>>
maybeExecute(...args): Promise<undefined | ReturnType<TFn>>
maybeExecute(...args): Promise<undefined | ReturnType<TFn>>
Definiert in: async-debouncer.ts:282
Versucht, die verzögerte Funktion auszuführen. Wenn ein Aufruf bereits läuft, wird er in die Warteschlange gestellt.
Fehlerbehandlung
...Parameters<TFn>
Promise<undefined | ReturnType<TFn>>
Ein Promise, das mit dem Rückgabewert der Funktion aufgelöst wird oder undefined, wenn ein Fehler aufgetreten und von onError behandelt wurde
Der Fehler der verzögerten Funktion, wenn kein onError-Handler konfiguriert ist
reset(): void
reset(): void
Definiert in: async-debouncer.ts:419
Setzt den Debouncer-Zustand auf seine Standardwerte zurück
void
setOptions(newOptions): void
setOptions(newOptions): void
Definiert in: async-debouncer.ts:222
Aktualisiert die Optionen des asynchronen Debouncers
Partial<AsyncDebouncerOptions<TFn>>
void
Ihre wöchentliche Dosis JavaScript-Nachrichten. Jeden Montag kostenlos an über 100.000 Entwickler geliefert.