| /** Error message constants. */ |
| var FUNC_ERROR_TEXT = 'Expected a function'; |
| |
| /** |
| * The base implementation of `_.delay` and `_.defer` which accepts `args` |
| * to provide to `func`. |
| * |
| * @private |
| * @param {Function} func The function to delay. |
| * @param {number} wait The number of milliseconds to delay invocation. |
| * @param {Array} args The arguments to provide to `func`. |
| * @returns {number|Object} Returns the timer id or timeout object. |
| */ |
| function baseDelay(func, wait, args) { |
| if (typeof func != 'function') { |
| throw new TypeError(FUNC_ERROR_TEXT); |
| } |
| return setTimeout(function() { func.apply(undefined, args); }, wait); |
| } |
| |
| module.exports = baseDelay; |