Network flickers happen. If a request fails, don’t just show an error; try again—but wait longer each time to avoid overloading the server.
async function fetchWithRetry(url, retries = 3, delay = 1000) {
try {
return await fetch(url);
} catch (err) {
if (retries === 0) throw err;
await new Promise(r => setTimeout(r, delay));
return fetchWithRetry(url, retries - 1, delay * 2);
}
}
