UNPKG

@beenotung/tslib

Version:
31 lines (30 loc) 790 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.tryFAsync = tryFAsync; exports.autoRetryAsync = autoRetryAsync; const defer_1 = require("./defer"); async function tryFAsync(f) { try { return f(); } catch (e) { return Promise.reject(e); } } async function autoRetryAsync(f, retry_delay = 1000) { try { return await f(); } catch (e) { if (retry_delay > 0) { const defer = (0, defer_1.createDefer)(); setTimeout(() => autoRetryAsync(f, retry_delay) .then(defer.resolve) .catch(defer.reject), retry_delay); return defer.promise; } else { return await autoRetryAsync(f, retry_delay); } } }