diff options
Diffstat (limited to 'lib/memoize.js')
-rw-r--r-- | lib/memoize.js | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/memoize.js b/lib/memoize.js index ec83620..d752d99 100644 --- a/lib/memoize.js +++ b/lib/memoize.js @@ -3,6 +3,7 @@ import rest from './internal/rest'; import setImmediate from './internal/setImmediate'; import initialParams from './internal/initialParams'; +import wrapAsync from './internal/wrapAsync'; function has(obj, key) { return key in obj; @@ -49,6 +50,7 @@ export default function memoize(fn, hasher) { var memo = Object.create(null); var queues = Object.create(null); hasher = hasher || identity; + var _fn = wrapAsync(fn); var memoized = initialParams(function memoized(args, callback) { var key = hasher.apply(null, args); if (has(memo, key)) { @@ -59,7 +61,7 @@ export default function memoize(fn, hasher) { queues[key].push(callback); } else { queues[key] = [callback]; - fn.apply(null, args.concat(rest(function(args) { + _fn.apply(null, args.concat(rest(function(args) { memo[key] = args; var q = queues[key]; delete queues[key]; |