source: node_modules/ramda-adjunct/lib/delayP.js

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 1.8 KB
RevLine 
[d24f17c]1"use strict";
2
3exports.__esModule = true;
4exports["default"] = void 0;
5var _ramda = require("ramda");
6var _isNonNegative = _interopRequireDefault(require("./isNonNegative"));
7var _isInteger = _interopRequireDefault(require("./isInteger"));
8function _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
27var 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});
44var delayP = makeDelay((0, _ramda.nth)(0));
45delayP.reject = makeDelay((0, _ramda.nth)(1));
46var _default = delayP;
47exports["default"] = _default;
Note: See TracBrowser for help on using the repository browser.