1 | /** Error message constants. */
|
2 | var FUNC_ERROR_TEXT = 'Expected a function';
|
3 |
|
4 | /**
|
5 | * The base implementation of `_.delay` and `_.defer` which accepts `args`
|
6 | * to provide to `func`.
|
7 | *
|
8 | * @private
|
9 | * @param {Function} func The function to delay.
|
10 | * @param {number} wait The number of milliseconds to delay invocation.
|
11 | * @param {Array} args The arguments to provide to `func`.
|
12 | * @returns {number|Object} Returns the timer id or timeout object.
|
13 | */
|
14 | function baseDelay(func, wait, args) {
|
15 | if (typeof func != 'function') {
|
16 | throw new TypeError(FUNC_ERROR_TEXT);
|
17 | }
|
18 | return setTimeout(function() { func.apply(undefined, args); }, wait);
|
19 | }
|
20 |
|
21 | module.exports = baseDelay;
|