1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 | Object.defineProperty(exports, "__esModule", {
|
5 | value: true
|
6 | });
|
7 | exports.promiseWithTimeout = exports["default"] = void 0;
|
8 | var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
9 | var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
10 | var _err = require("@lskjs/err");
|
11 | var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
|
12 |
|
13 |
|
14 | var promiseWithTimeout = function () {
|
15 | var _ref = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee(promiseOrFn) {
|
16 | var timeout,
|
17 | timeoutId,
|
18 | timeoutPromise,
|
19 | promise,
|
20 | res,
|
21 | _args = arguments;
|
22 | return _regenerator["default"].wrap(function _callee$(_context) {
|
23 | while (1) switch (_context.prev = _context.next) {
|
24 | case 0:
|
25 | timeout = _args.length > 1 && _args[1] !== undefined ? _args[1] : 15000;
|
26 | timeoutPromise = new Promise(function (_, reject) {
|
27 | timeoutId = setTimeout(function () {
|
28 | reject(new _err.Err('PROMISE_TIMEOUT', {
|
29 | timeout: timeout
|
30 | }));
|
31 | }, timeout);
|
32 | });
|
33 | promise = (0, _isFunction["default"])(promiseOrFn) ? promiseOrFn() : promiseOrFn;
|
34 | _context.next = 5;
|
35 | return Promise.race([promise, timeoutPromise]);
|
36 | case 5:
|
37 | res = _context.sent;
|
38 | clearTimeout(timeoutId);
|
39 | return _context.abrupt("return", res);
|
40 | case 8:
|
41 | case "end":
|
42 | return _context.stop();
|
43 | }
|
44 | }, _callee);
|
45 | }));
|
46 | return function promiseWithTimeout(_x) {
|
47 | return _ref.apply(this, arguments);
|
48 | };
|
49 | }();
|
50 | exports.promiseWithTimeout = promiseWithTimeout;
|
51 | var _default = promiseWithTimeout;
|
52 | exports["default"] = _default;
|
53 |
|
\ | No newline at end of file |