Muster für Wiederholungen und Backoff
Fehlschlagende asynchrone Vorgänge einige Male mit Verzögerungen wiederholen; exponentielles Backoff und kleinen Jitter hinzufügen; nach einem klaren Maximum stoppen
Muster für Wiederholungen und Backoff ist eine kostenlose JavaScript Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des JavaScript Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der JavaScript Academy-Kurs umfasst insgesamt 3 Lektionen.
Warum Wiederholungsversuche?
Ziel: Kleine, kontrollierte Wiederholungsversuche hinzufügen.
- Einfache Retry-Schleife
- Exponentielles Backoff
- Geringfügiger Jitter
- Klare maximale Anzahl an Versuchen

Verzögerungsfunktion
Sie benötigen eine kleine Hilfsfunktion für eine Verzögerung, um zwischen Versuchen zu pausieren.
// delay: resolve after ms
function delay(ms) {
return new Promise(function (resolve) {
setTimeout(function () { resolve(); }, ms);
});
}
async function demoDelay() {
console.log("wait...");
await delay(5);
console.log("done");
}
demoDelay();

Instabile Arbeit simulieren
Mit dieser simulierten Aufgabe können Sie Wiederholungsversuche üben, ohne echte Netzwerkaufrufe auszuführen.
// Unstable task: fails first N times, then succeeds
function makeUnstable(failCount, value) {
let left = failCount;
return async function run() {
if (left > 0) {
left = left - 1;
throw new Error("temporary");
}
return value;
};
}
const sometimes = makeUnstable(2, "OK");
sometimes().catch(function (e) { console.log("first:", e.message); });

Feste Retry-Schleife
Festes Intervall: Warten Sie zwischen den Versuchen jeweils gleich lange und beenden Sie die Schleife nach der maximalen Anzahl an Versuchen.
// Retry a few times with a fixed wait
async function retryFixed(fn, tries, waitMs) {
let lastError = null;
for (let i = 1; i <= tries; i++) {
try {
return await fn();
} catch (e) {
lastError = e;
console.log("attempt", i, "failed:", e.message);
if (i < tries) {
await delay(waitMs);
}
}
}
throw lastError;
}
(async function () {
const job = makeUnstable(2, "OK");
const result = await retryFixed(job, 3, 5);
console.log("fixed result:", result);
})();

Exponentielles Backoff
Backoff: Erhöhen Sie die Wartezeit bei jedem Versuch und fügen Sie einen geringfügigen Jitter hinzu, um Lastspitzen zu vermeiden.
// Exponential backoff with a tiny jitter
function jitter(ms) {
const wiggle = Math.floor(Math.random() * 3); // 0..2
return ms + wiggle;
}
async function retryBackoff(fn, tries, baseMs) {
let lastError = null;
for (let i = 1; i <= tries; i++) {
try {
return await fn();
} catch (e) {
lastError = e;
console.log("attempt", i, "failed:", e.message);
if (i < tries) {
const wait = jitter(baseMs * Math.pow(2, i - 1));
await delay(wait);
}
}
}
throw lastError;
}
(async function () {
const job = makeUnstable(2, "OK");
const value = await retryBackoff(job, 4, 3);
console.log("backoff result:", value);
})();

Tipps für Wiederholungsversuche
Tipps:
- Wiederholen Sie nur bei vorübergehenden Fehlern (Timeouts, Ratenbegrenzungen).
- Wiederholen Sie bei ungültigen Eingaben nicht.
- Halten Sie die Anzahl der Versuche klein (3–5) und protokollieren Sie Fehler kurz.

Quiz zu Retry und Backoff
Kurzer Check: Grundlagen des Backoffs

Zusammenfassung
Zusammenfassung: Sie haben eine feste Retry-Schleife erstellt, ein exponentielles Backoff mit geringfügigem Jitter hinzugefügt und eine maximale Anzahl an Versuchen festgelegt, damit Apps reaktionsfähig bleiben.

Häufig gestellte Fragen
Ist die Lektion „Muster für Wiederholungen und Backoff“ kostenlos?
Ja — der vollständige Text von „Muster für Wiederholungen und Backoff“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des JavaScript Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der JavaScript Academy-Kurs umfasst insgesamt 3 Lektionen.
Was lerne ich in „Muster für Wiederholungen und Backoff“?
Fehlschlagende asynchrone Vorgänge einige Male mit Verzögerungen wiederholen; exponentielles Backoff und kleinen Jitter hinzufügen; nach einem klaren Maximum stoppen Du übst JavaScript Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um JavaScript Academy zu starten?
Keine Vorkenntnisse erforderlich. JavaScript Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 3.
Wie lange dauert die Lektion „Muster für Wiederholungen und Backoff“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser JavaScript Academy-Lektion Code schreiben und ausführen?
Ja. Jede JavaScript Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Async-Funktionen schreiben; try/catch; parallel vs. sequenziell
- Timeouts und Abbrechen mit AbortController
- Muster für Wiederholungen und Backoff