@@ -39,3 +39,21 @@ export const getPurifyHref = (href: string) => {
|
||||
|
||||
return escape(href)
|
||||
}
|
||||
|
||||
export async function fetchWithRetry<T = any>(fn: Promise<T>, retries = 3): Promise<[Error] | [null, T]> {
|
||||
const [error, res] = await asyncRunSafe(fn)
|
||||
if (error) {
|
||||
if (retries > 0) {
|
||||
const res = await fetchWithRetry(fn, retries - 1)
|
||||
return res
|
||||
}
|
||||
else {
|
||||
if (error instanceof Error)
|
||||
return [error]
|
||||
return [new Error('unknown error')]
|
||||
}
|
||||
}
|
||||
else {
|
||||
return [null, res]
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user