Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/mem/readme.md')
-rw-r--r--node_modules/mem/readme.md74
1 files changed, 27 insertions, 47 deletions
diff --git a/node_modules/mem/readme.md b/node_modules/mem/readme.md
index add4222b6..7ebab84f0 100644
--- a/node_modules/mem/readme.md
+++ b/node_modules/mem/readme.md
@@ -2,13 +2,11 @@
> [Memoize](https://en.wikipedia.org/wiki/Memoization) functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input
-Memory is automatically released when an item expires.
-
## Install
```
-$ npm install mem
+$ npm install --save mem
```
@@ -24,11 +22,11 @@ const memoized = mem(counter);
memoized('foo');
//=> 1
-// Cached as it's the same arguments
+// cached as it's the same arguments
memoized('foo');
//=> 1
-// Not cached anymore as the arguments changed
+// not cached anymore as the arguments changed
memoized('bar');
//=> 2
@@ -42,37 +40,35 @@ memoized('bar');
const mem = require('mem');
let i = 0;
-const counter = async () => ++i;
+const counter = () => Promise.resolve(++i);
const memoized = mem(counter);
-(async () => {
- console.log(await memoized());
+memoized().then(a => {
+ console.log(a);
//=> 1
- // The return value didn't increase as it's cached
- console.log(await memoized());
- //=> 1
-})();
+ memoized().then(b => {
+ // the return value didn't increase as it's cached
+ console.log(b);
+ //=> 1
+ });
+});
```
```js
const mem = require('mem');
const got = require('got');
-const delay = require('delay');
-
const memGot = mem(got, {maxAge: 1000});
-(async () => {
- await memGot('sindresorhus.com');
-
- // This call is cached
- await memGot('sindresorhus.com');
-
- await delay(2000);
-
- // This call is not cached as the cache has expired
- await memGot('sindresorhus.com');
-})();
+memGot('sindresorhus.com').then(() => {
+ // this call is cached
+ memGot('sindresorhus.com').then(() => {
+ setTimeout(() => {
+ // this call is not cached as the cache has expired
+ memGot('sindresorhus.com').then(() => {});
+ }, 2000);
+ });
+});
```
@@ -88,8 +84,6 @@ Function to be memoized.
#### options
-Type: `Object`
-
##### maxAge
Type: `number`<br>
@@ -110,14 +104,7 @@ You could for example change it to only cache on the first argument `x => JSON.s
Type: `Object`<br>
Default: `new Map()`
-Use a different cache storage. Must implement the following methods: `.has(key)`, `.get(key)`, `.set(key, value)`, `.delete(key)`, and optionally `.clear()`. You could for example use a `WeakMap` instead or [`quick-lru`](https://github.com/sindresorhus/quick-lru) for a LRU cache.
-
-##### cachePromiseRejection
-
-Type: `boolean`<br>
-Default: `false`
-
-Cache rejected promises.
+Use a different cache storage. Must implement the following methods: `.has(key)`, `.get(key)`, `.set(key, value)`, and optionally `.clear()`. You could for example use a `WeakMap` instead.
### mem.clear(fn)
@@ -146,22 +133,15 @@ const got = require('got');
const cache = new StatsMap();
const memGot = mem(got, {cache});
-(async () => {
- await memGot('sindresorhus.com');
- await memGot('sindresorhus.com');
- await memGot('sindresorhus.com');
+memGot('sindresorhus.com')
+ .then(() => memGot('sindresorhus.com'))
+ .then(() => memGot('sindresorhus.com'));
- console.log(cache.stats);
- //=> {hits: 2, misses: 1}
-})();
+console.log(cache.stats);
+//=> {hits: 2, misses: 1}
```
-## Related
-
-- [p-memoize](https://github.com/sindresorhus/p-memoize) - Memoize promise-returning & async functions
-
-
## License
MIT © [Sindre Sorhus](https://sindresorhus.com)