diff options
Diffstat (limited to 'lib/ensureAsync.js')
-rw-r--r-- | lib/ensureAsync.js | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/lib/ensureAsync.js b/lib/ensureAsync.js index a579efc..b2b35b9 100644 --- a/lib/ensureAsync.js +++ b/lib/ensureAsync.js @@ -1,5 +1,4 @@ import setImmediate from './internal/setImmediate'; -import initialParams from './internal/initialParams'; import { isAsync } from './internal/wrapAsync'; /** @@ -39,19 +38,17 @@ import { isAsync } from './internal/wrapAsync'; */ export default function ensureAsync(fn) { if (isAsync(fn)) return fn; - return initialParams(function (args, callback) { + return function (...args/*, callback*/) { + var callback = args.pop() var sync = true; - args.push(function () { - var innerArgs = arguments; + args.push((...innerArgs) => { if (sync) { - setImmediate(function () { - callback.apply(null, innerArgs); - }); + setImmediate(() => callback(...innerArgs)); } else { - callback.apply(null, innerArgs); + callback(...innerArgs); } }); fn.apply(this, args); sync = false; - }); + }; } |