📚 18.实现错误重新请求,并控制重试次数
💻 代码实现
typescript
function retryRequest(requestFn, maxRetries = 3, delay = 1000) {
return new Promise(async (resolve, reject) => {
let retries = 0;
const attempt = async () => {
try {
const result = await requestFn();
resolve(result);
} catch (error) {
retries++;
if (retries > maxRetries) {
reject(`请求失败,已达最大重试次数(${maxRetries}次)`);
} else {
console.log(` 请求失败,第 ${retries} 次重试...`);
setTimeout(attempt, delay);
}
}
};
await attempt();
});
}