diff options
author | Alexander Early <alexander.early@gmail.com> | 2016-03-19 22:08:12 -0700 |
---|---|---|
committer | Alexander Early <alexander.early@gmail.com> | 2016-03-19 22:08:12 -0700 |
commit | 75fffa0288f44f2929994bee3e96be28c784ee6f (patch) | |
tree | e550061c69cee4204297fc0c8f6be671d59dfebf /lib/timeout.js | |
parent | fa85fcaf02e0689876159465e0490901d03b9bdc (diff) | |
download | async-75fffa0288f44f2929994bee3e96be28c784ee6f.tar.gz |
use initialParams to simplify callback extraction
Diffstat (limited to 'lib/timeout.js')
-rw-r--r-- | lib/timeout.js | 19 |
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)); + }); } |