1 | "use strict";
|
---|
2 |
|
---|
3 | exports.__esModule = true;
|
---|
4 | exports["default"] = void 0;
|
---|
5 | var _ramda = require("ramda");
|
---|
6 | var _isNonNegative = _interopRequireDefault(require("./isNonNegative"));
|
---|
7 | var _isInteger = _interopRequireDefault(require("./isInteger"));
|
---|
8 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
---|
9 | /**
|
---|
10 | * Creates a promise which resolves/rejects after the specified milliseconds.
|
---|
11 | *
|
---|
12 | * @func delayP
|
---|
13 | * @memberOf RA
|
---|
14 | * @category Function
|
---|
15 | * @sig Number -> Promise Undefined
|
---|
16 | * @sig {timeout: Number, value: a} -> Promise a
|
---|
17 | * @param {number|Object} milliseconds number of milliseconds or options object
|
---|
18 | * @return {Promise} A Promise that is resolved/rejected with the given value (if provided) after the specified delay
|
---|
19 | * @example
|
---|
20 | *
|
---|
21 | * RA.delayP(200); //=> Promise(undefined)
|
---|
22 | * RA.delayP({ timeout: 1000, value: 'hello world' }); //=> Promise('hello world')
|
---|
23 | * RA.delayP.reject(100); //=> Promise(undefined)
|
---|
24 | * RA.delayP.reject({ timeout: 100, value: new Error('error') }); //=> Promise(Error('error'))
|
---|
25 | */
|
---|
26 |
|
---|
27 | var makeDelay = (0, _ramda.curry)(function (settleFnPicker, opts) {
|
---|
28 | var timeout;
|
---|
29 | var value;
|
---|
30 | if ((0, _isInteger["default"])(opts) && (0, _isNonNegative["default"])(opts)) {
|
---|
31 | timeout = opts;
|
---|
32 | } else {
|
---|
33 | timeout = (0, _ramda.propOr)(0, 'timeout', opts);
|
---|
34 | value = (0, _ramda.propOr)(value, 'value', opts);
|
---|
35 | }
|
---|
36 | return new Promise(function () {
|
---|
37 | for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
---|
38 | args[_key] = arguments[_key];
|
---|
39 | }
|
---|
40 | var settleFn = settleFnPicker(args);
|
---|
41 | setTimeout((0, _ramda.partial)(settleFn, [value]), timeout);
|
---|
42 | });
|
---|
43 | });
|
---|
44 | var delayP = makeDelay((0, _ramda.nth)(0));
|
---|
45 | delayP.reject = makeDelay((0, _ramda.nth)(1));
|
---|
46 | var _default = delayP;
|
---|
47 | exports["default"] = _default; |
---|