All Projects → sindresorhus → P Memoize

sindresorhus / P Memoize

Licence: mit
Memoize promise-returning & async functions

Programming Languages

javascript
184084 projects - #8 most used programming language

p-memoize

Memoize promise-returning & async functions

Useful for speeding up consecutive function calls by caching the result of calls with identical input.

By default, only the memoized function's first argument is considered and it only works with primitives. If you need to cache multiple arguments or cache objects by value, have a look at options below.

Install

$ npm install p-memoize

Usage

const pMemoize = require('p-memoize');
const got = require('got');

const memGot = pMemoize(got, {maxAge: 1000});

(async () => {
	memGot('https://sindresorhus.com');

	// This call is cached
	memGot('https://sindresorhus.com');

	setTimeout(() => {
		// This call is not cached as the cache has expired
		memGot('https://sindresorhus.com');
	}, 2000);
})();

API

pMemoize(fn, options?)

Returns a memoized version of the fn function.

fn

Type: Function

Promise-returning or async function to be memoized.

options

Type: object

See the mem options in addition to the below option.

cachePromiseRejection

Type: boolean
Default: false

Cache rejected promises.

pMemoize.clear(memoized)

Clear all cached data of a memoized function.

Will throw if passed a non-memoized function.

Related

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].