let retryPeriod = 1_000; function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } export async function persistently(func) { try { let res = await func(); retryPeriod = 1_000; return res; } catch(err) { console.error(err); await sleep(retryPeriod); retryPeriod *= 2; retryPeriod = Math.min(64_000, retryPeriod); return persistently(func); } }