@beyonk/promise-retry
Version:
Retry a promise if it times out, until max retries reached
19 lines (17 loc) • 421 B
JavaScript
module.exports = function retry(fn, retriesLeft = 5, interval = 1000) {
return new Promise((resolve, reject) => {
return fn()
.then(resolve)
.catch(error => {
if (retriesLeft === 0) {
reject(error)
return
}
setTimeout(() => {
retry(fn, retriesLeft - 1, interval)
.then(resolve, reject)
}, interval)
})
})
}