diff options
Diffstat (limited to 'ui/lib/retry.js')
| -rw-r--r-- | ui/lib/retry.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/ui/lib/retry.js b/ui/lib/retry.js new file mode 100644 index 0000000..a2cff65 --- /dev/null +++ b/ui/lib/retry.js @@ -0,0 +1,21 @@ +export async function retry(callback, shouldRetry, delay) { + while (true) { + try { + return await callback(); + } catch (err) { + if (shouldRetry(err)) { + await delay(); + } else { + throw err; + } + } + } +} + +export function timedDelay(millis) { + return async () => await sleep(millis); +} + +function sleep(millis) { + return new Promise((resolve) => setTimeout(resolve, millis)); +} |
