1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.autoRetryAsync = exports.tryFAsync = void 0;
|
4 | const tslib_1 = require("tslib");
|
5 | const defer_1 = require("./defer");
|
6 | function 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 | }
|
16 | exports.tryFAsync = tryFAsync;
|
17 | function 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 | }
|
38 | exports.autoRetryAsync = autoRetryAsync;
|
39 |
|
\ | No newline at end of file |