Promise重试机制是一种编程模式,用于在异步操作(如网络请求)失败时自动重试,直到操作成功或达到最大重试次数。这种机制在处理不稳定的网络连接或暂时性错误时非常有用。
以下是一个简单的固定次数重试机制的实现:
async function retry<T>(fn: () => Promise<T>, retries = 3, delay = 1000): Promise<T> {
try {
return await fn();
} catch (error) {
if (retries === 0) {
throw error;
}
await new Promise(resolve => setTimeout(resolve, delay));
return retry(fn, retries - 1, delay);
}
}
// 示例使用
async function fetchData() {
const response = await fetch('https://api.example.com/data');
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
}
retry(fetchData)
.then(data => console.log(data))
.catch(error => console.error('Failed after retries:', error));
通过以上方法,可以有效地实现Promise重试机制,提高应用的稳定性和可靠性。
领取专属 10元无门槛券
手把手带您无忧上云