UNPKG

@prelude/function

Version:

Function module.

15 lines 494 B
import sleep from './sleep.js'; const eventually = async (f, { retry = _ => _ < 10, delay = 1000, predicate = _ => Boolean(_), reject = _ => { throw _; } } = {}) => { const before = Date.now(); let i = 0; while (retry(i++, Date.now() - before)) { const r = await f().catch(reject); if (predicate(r)) { return r; } await sleep(delay); } return reject(undefined); }; export default eventually; //# sourceMappingURL=eventually.js.map