UNPKG

1.18 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.autoRetryAsync = exports.tryFAsync = void 0;
4const tslib_1 = require("tslib");
5const defer_1 = require("./defer");
6function tryFAsync(f) {
7 return tslib_1.__awaiter(this, void 0, void 0, function* () {
8 try {
9 return f();
10 }
11 catch (e) {
12 return Promise.reject(e);
13 }
14 });
15}
16exports.tryFAsync = tryFAsync;
17function autoRetryAsync(f, retry_delay = 1000) {
18 return tslib_1.__awaiter(this, void 0, void 0, function* () {
19 try {
20 return yield f();
21 }
22 catch (e) {
23 if (retry_delay > 0) {
24 const defer = defer_1.createDefer();
25 setTimeout(() => {
26 autoRetryAsync(f, retry_delay)
27 .then(defer.resolve)
28 .catch(defer.reject);
29 }, retry_delay);
30 return defer.promise;
31 }
32 else {
33 return yield autoRetryAsync(f, retry_delay);
34 }
35 }
36 });
37}
38exports.autoRetryAsync = autoRetryAsync;
39//# sourceMappingURL=defend.js.map
\No newline at end of file