diff options
author | Alexander Early <alexander.early@gmail.com> | 2016-02-23 16:09:53 -0800 |
---|---|---|
committer | Alexander Early <alexander.early@gmail.com> | 2016-02-23 16:10:07 -0800 |
commit | 070ed49496d5cf0b3c31a8091608610961191238 (patch) | |
tree | e26f489e37ae3a227867b3d1dfe6c04afa361c23 /build-es/memoize.js | |
parent | 3cf46d01b44c31203f4e59db280378a58d760d0d (diff) | |
download | async-modularization.tar.gz |
gitignore build directoriesmodularization
Diffstat (limited to 'build-es/memoize.js')
-rw-r--r-- | build-es/memoize.js | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/build-es/memoize.js b/build-es/memoize.js deleted file mode 100644 index 8e66b85..0000000 --- a/build-es/memoize.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -import identity from 'lodash-es/identity'; -import rest from 'lodash-es/rest'; -import has from 'lodash-es/has'; - -import setImmediate from './internal/setImmediate'; - -export default function memoize(fn, hasher) { - var memo = Object.create(null); - var queues = Object.create(null); - hasher = hasher || identity; - var memoized = rest(function memoized(args) { - var callback = args.pop(); - var key = hasher.apply(null, args); - if (has(memo, key)) { - setImmediate(function() { - callback.apply(null, memo[key]); - }); - } else if (has(queues, key)) { - queues[key].push(callback); - } else { - queues[key] = [callback]; - fn.apply(null, args.concat([rest(function(args) { - memo[key] = args; - var q = queues[key]; - delete queues[key]; - for (var i = 0, l = q.length; i < l; i++) { - q[i].apply(null, args); - } - })])); - } - }); - memoized.memo = memo; - memoized.unmemoized = fn; - return memoized; -} |