编写一个函数,该函数接收一个返回Promise的函数作为参数,以及重试次数和重试间隔(毫秒)。如果Promise被拒绝,则根据重试次数和间隔重试,直到成功或达到重试次数上限。
function promiseRetry(fn, retries = 3, delay = 1000) {
// 你的代码,可以使用递归或循环(结合setTimeout)来实现
}
// 示例使用
function mightFail() {
return new Promise((resolve, reject) => {
// 这里简单模拟失败情况
reject('Failed');
// 实际应用中可能是异步操作,如网络请求
});
}
promiseRetry(mightFail, 2, 2000).then(() => {
console.log('Success!');
}).catch(() => {
console.log('Failed after retries');
});