-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
Description
Problem Statement
Reading this article, https://blog.bearer.sh/add-retry-to-api-calls-javascript-node/ Maybe would be a good idea to add a retry middleware
Solution Brainstorm
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)
}Reactions are currently unavailable