1.0.1 • Published 8 years ago

promizee v1.0.1

Weekly downloads
4
License
ISC
Repository
-
Last release
8 years ago

So you've memoize(e)d a function which returns a promise, and you'd like the result cache to expire once the promise has been resolved/rejected?

This module can be swapped-in for the standard memoizee() just for this purpose.

Usage:

promizee(promiserFunc, [options])
  • promiserFunc - a function which returns a Promise.
  • options - optional options object passed straight to memoizee() (documentation)

Returns a memoized function which clears its cache after the Promise it returns is resolved/rejected.

Example:

var promizee = require('promizee');
var Promise = require('bluebird');

function doubleIt(it) {
 	// do something that takes some time
	return Promise.delay(5000).then(function(){
		return it + it;
	});
}

var promizeedDoubleIt = promizee(doubleIt);

promizeedDoubleIt(5); // returns new Promise that resolves to 10
promizeedDoubleIt(5); // Cache hit - returns the same Promise as above
promizeedDoubleIt(6); // returns a new Promise that resolves to 12

setTimeout(function(){
	// after 6 seconds
	promizeedDoubleIt(5); // returns a new Promise that resolves to 10
	promizeedDoubleIt.clear() // manually clear the cache
	promizeedDoubleIt(5); // returns a new Promise that resolves to 10
}, 6000);