summaryrefslogtreecommitdiff
path: root/lib/timeout.js
diff options
context:
space:
mode:
authorAlexander Early <alexander.early@gmail.com>2016-03-19 22:08:12 -0700
committerAlexander Early <alexander.early@gmail.com>2016-03-19 22:08:12 -0700
commit75fffa0288f44f2929994bee3e96be28c784ee6f (patch)
treee550061c69cee4204297fc0c8f6be671d59dfebf /lib/timeout.js
parentfa85fcaf02e0689876159465e0490901d03b9bdc (diff)
downloadasync-75fffa0288f44f2929994bee3e96be28c784ee6f.tar.gz
use initialParams to simplify callback extraction
Diffstat (limited to 'lib/timeout.js')
-rw-r--r--lib/timeout.js19
1 files changed, 6 insertions, 13 deletions
diff --git a/lib/timeout.js b/lib/timeout.js
index c8c9dfd..6af4f52 100644
--- a/lib/timeout.js
+++ b/lib/timeout.js
@@ -1,5 +1,7 @@
'use strict';
+import initialParams from './internal/initialParams';
+
export default function timeout(asyncFn, miliseconds) {
var originalCallback, timer;
var timedOut = false;
@@ -18,19 +20,10 @@ export default function timeout(asyncFn, miliseconds) {
originalCallback(error);
}
- function injectCallback(asyncFnArgs) {
- // replace callback in asyncFn args
- var args = Array.prototype.slice.call(asyncFnArgs, 0);
- originalCallback = args[args.length - 1];
- args[args.length - 1] = injectedCallback;
- return args;
- }
-
- function wrappedFn() {
+ return initialParams(function (args, origCallback) {
+ originalCallback = origCallback;
// setup timer and call original function
timer = setTimeout(timeoutCallback, miliseconds);
- asyncFn.apply(null, injectCallback(arguments));
- }
-
- return wrappedFn;
+ asyncFn.apply(null, args.concat(injectedCallback));
+ });
}