Exponential backoff retry một async call failing với delay tăng dần (1s, 2s, 4s...).
js
async function retry(fn, maxRetries = 3, delay = 1000) {
for (let i = 0; i < maxRetries; i++) {
try { return await fn(); }
catch (err) {
if (i === maxRetries - 1) throw err;
await new Promise(r => setTimeout(r, delay * 2 ** i));
}
}
}Dùng cho API calls không ổn định.
Delay tăng: 1s, 2s, 4s.