概述指数回退结合抖动可减少拥塞与同步重试带来的负载尖峰,适用于关键数据请求。重试封装function sleep(ms) { return new Promise(r => setTimeout(r, ms)); } async function fetchRetry(url, opts = {}, retries = 3, base = 300) { for (let i = 0; i <= retries; i++) { try { const res = await fetch(url, opts); if (!res.ok) throw new Error('bad status'); return res; } catch (e) { if (i === retries) throw e; const jitter = Math.floor(Math.random() * 100); await sleep(base * Math.pow(2, i) + jitter); } } }

发表评论 取消回复