mirror of
https://github.com/tenrok/axios.git
synced 2026-06-17 19:21:29 +03:00
ef3711d1b3
* feat: implement prettier and fix all issues * fix: failing tests * fix: implement feedback from codel, ai etc * chore: dont throw in trim function Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> * fix: incorrect fix --------- Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
21 lines
564 B
JavaScript
21 lines
564 B
JavaScript
export const retryNetwork = async (fn, retries = 3, delay = 1000) => {
|
|
let attempt = 0,
|
|
sleep;
|
|
|
|
do {
|
|
try {
|
|
return await fn();
|
|
} catch (err) {
|
|
if (err.code === 'ERR_NETWORK' && attempt++ < retries) {
|
|
sleep = attempt * attempt * delay;
|
|
console.warn(
|
|
`[ERR_NETWORK]: Attempt ${attempt}/${retries}${err.config ? ' [' + err.config.url + ']' : ''} sleep [${sleep}ms]`
|
|
);
|
|
await new Promise((resolve) => setTimeout(resolve, sleep));
|
|
} else {
|
|
throw err;
|
|
}
|
|
}
|
|
} while (true);
|
|
};
|