promizee

1.0.1 • Public • Published

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);

/promizee/

    Package Sidebar

    Install

    npm i promizee

    Weekly Downloads

    2

    Version

    1.0.1

    License

    ISC

    Last publish

    Collaborators

    • flamescape