js code retry with parameters
function fetchRetry(url, options = {}, retries = 3, backoff = 300) {
/* 1 */
const retryCodes = [408, 500, 502, 503, 504, 522, 524]
return fetch(url, options)
.then(res => {
if (res.ok) return res.json()
if (retries > 0 && retryCodes.includes(res.status)) {
setTimeout(() => {
/* 2 */
return fetchRetry(url, options, retries - 1, backoff * 2) /* 3 */
}, backoff) /* 2 */
} else {
throw new Error(res)
}
})
.catch(console.error)
}