1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- 'use strict';
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = timeout;
- var _initialParams = require('./internal/initialParams');
- var _initialParams2 = _interopRequireDefault(_initialParams);
- var _wrapAsync = require('./internal/wrapAsync');
- var _wrapAsync2 = _interopRequireDefault(_wrapAsync);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function timeout(asyncFn, milliseconds, info) {
- var fn = (0, _wrapAsync2.default)(asyncFn);
- return (0, _initialParams2.default)(function (args, callback) {
- var timedOut = false;
- var timer;
- function timeoutCallback() {
- var name = asyncFn.name || 'anonymous';
- var error = new Error('Callback function "' + name + '" timed out.');
- error.code = 'ETIMEDOUT';
- if (info) {
- error.info = info;
- }
- timedOut = true;
- callback(error);
- }
- args.push(function () {
- if (!timedOut) {
- callback.apply(null, arguments);
- clearTimeout(timer);
- }
- });
-
- timer = setTimeout(timeoutCallback, milliseconds);
- fn.apply(null, args);
- });
- }
- module.exports = exports['default'];
|