9 lines
727 B
Markdown
9 lines
727 B
Markdown
|
|
Implementiere in TypeScript eine typsichere, wiederverwendbare Retry-Funktion `retry` mit exponentiellem Backoff und Jitter.
|
||
|
|
|
||
|
|
Anforderungen:
|
||
|
|
- Generisch über den Rückgabetyp der zu wiederholenden async-Funktion (`() => Promise<T>` → `Promise<T>`).
|
||
|
|
- Konfigurierbar: maximale Versuche, Basis-Delay, Backoff-Faktor, maximales Delay, optionales `shouldRetry(error)`-Prädikat.
|
||
|
|
- Nach dem letzten fehlgeschlagenen Versuch wird mit dem zuletzt aufgetretenen Fehler abgebrochen (kein stilles Verschlucken).
|
||
|
|
- Vitest-Tests inklusive Fake-Timers, die die Backoff-Logik und den Abbruch nach `maxAttempts` prüfen.
|
||
|
|
|
||
|
|
Begründe im Anschluss kurz die wichtigsten Designentscheidungen (u. a. warum Jitter, wie das Delay gedeckelt wird).
|