function asyncDebounce<TFn>(fn, initialOptions): (...args) => Promise<undefined | ReturnType<TFn>>
function asyncDebounce<TFn>(fn, initialOptions): (...args) => Promise<undefined | ReturnType<TFn>>
Definiert in: async-debouncer.ts:468
Erstellt eine asynchrone Debounce-Funktion, die die Ausführung verzögert, bis nach einer bestimmten Wartezeit. Die Debounce-Funktion wird nur einmal ausgeführt, nachdem der Wartezeitraum ohne weitere Aufrufe verstrichen ist. Wenn sie während des Wartezeitraums erneut aufgerufen wird, wird der Timer zurückgesetzt und ein neuer Wartezeitraum beginnt.
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
• TFn erbt von AnyAsyncFunction
TFn
Funktion
Versucht, die Debounce-Funktion auszuführen. Wenn ein Aufruf bereits in Bearbeitung ist, 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 Debounce-Funktion, wenn kein onError-Handler konfiguriert ist
const debounced = asyncDebounce(async (value: string) => {
const result = await saveToAPI(value);
return result; // Return value is preserved
}, {
wait: 1000,
onError: (error) => {
console.error('API call failed:', error);
},
throwOnError: true // Will both log the error and throw it
});
// Will only execute once, 1 second after the last call
// Returns the API response directly
const result = await debounced("third");
const debounced = asyncDebounce(async (value: string) => {
const result = await saveToAPI(value);
return result; // Return value is preserved
}, {
wait: 1000,
onError: (error) => {
console.error('API call failed:', error);
},
throwOnError: true // Will both log the error and throw it
});
// Will only execute once, 1 second after the last call
// Returns the API response directly
const result = await debounced("third");
Ihre wöchentliche Dosis JavaScript-Nachrichten. Jeden Montag kostenlos an über 100.000 Entwickler geliefert.