@beenotung/tslib
Version:
utils library in Typescript
39 lines • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.autoRetryAsync = exports.tryFAsync = void 0;
const tslib_1 = require("tslib");
const defer_1 = require("./defer");
function tryFAsync(f) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
try {
return f();
}
catch (e) {
return Promise.reject(e);
}
});
}
exports.tryFAsync = tryFAsync;
function autoRetryAsync(f, retry_delay = 1000) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
try {
return yield f();
}
catch (e) {
if (retry_delay > 0) {
const defer = defer_1.createDefer();
setTimeout(() => {
autoRetryAsync(f, retry_delay)
.then(defer.resolve)
.catch(defer.reject);
}, retry_delay);
return defer.promise;
}
else {
return yield autoRetryAsync(f, retry_delay);
}
}
});
}
exports.autoRetryAsync = autoRetryAsync;
//# sourceMappingURL=defend.js.map