UNPKG

tryfunc

Version:

Calling throwing or failing functions

29 lines 990 B
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const delay_js_1 = __importDefault(require("delay.js")); exports.default = async (func, { interval, numAttempts, onAttempt, }) => { if (!Number.isFinite(interval) || interval < 0) { throw new Error('the interval should be a positive finite integer'); } for (let i = 0; i < numAttempts; ++i) { try { const val = await func(i); if (onAttempt) { onAttempt(null, i, true); } return val; } catch (err) { const delayPromise = delay_js_1.default(interval); if (onAttempt) { onAttempt(err, i, false); } await delayPromise; } } throw new Error('rejected'); }; //# sourceMappingURL=tryCall.js.map