UNPKG

@keplr-ewallet/ewallet-sdk-cosmos

Version:
30 lines 886 B
function sleep(ms) { return new Promise((resolve) => setTimeout(resolve, ms)); } export async function retry(task, opts) { let retries = 0; while (true) { try { const promise = task(); return await promise; } catch (e) { if (retries >= opts.maxRetries) { throw e; } if (opts.onFailed) { opts.onFailed(e); } let waitMs = opts.waitMsAfterError || 0; if (waitMs > 0) { if (opts.maxWaitMsAfterError != null && opts.maxWaitMsAfterError > 0) { waitMs = 2 ** retries * waitMs; waitMs = Math.min(waitMs, opts.maxWaitMsAfterError); } await sleep(waitMs); } retries++; } } } //# sourceMappingURL=retry.js.map