0.2.0 • Published 9 years ago

ensurize v0.2.0

Weekly downloads
3
License
MIT
Repository
github
Last release
9 years ago

ensurize

Ensurize pattern as described in http://www.franr.com/2015/12/optimizing-javascript-promises-avoiding-redundant-requests/

In a nutshell: _.once for Promises.

Install

$ npm install ensurize

Usage

var ensurize = require('ensurize');

//Function that has some side effect and returns a promise
var increment = function (c) {
    c.value++;
    return Promise.resolve(c);
};

// Side effect runs twice as expected
increment({ value: 0 })
    .then(increment)
    .then(counter => console.log(counter));
// => { value: 2 }

// Wrap original function
var ensureIncremented = ensurize(increment);

// Side effect only happens once
ensureIncremented({ value: 0 })
    .then(ensureIncremented)
    .then(counter => console.log(counter));
// => { value: 1 }
0.2.0

9 years ago

0.1.0

9 years ago