@beenotung/tslib
Version:
utils library in Typescript
31 lines (30 loc) • 790 B
JavaScript
;
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);
}
}
}