重试修饰器实现 retry 基于Promise
function retry(fn, times, delay) {
let currTimes = 1;
return new Promise(function(resolve, reject) {
function attempt() {
fn().then(resolve).catch(function(err) {
console.log(`第 ${currTimes} 次尝试`);
if(times === 0) {
reject(err)
} else {
times--;
currTimes++;
setTimeout(attempt(), delay)
}
})
}
attempt()
})
}
本作品采用《CC 协议》,转载必须注明作者和本文链接