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