Guarantee a node-style async function is only executed once.
var once = require('async-once');
var count = 0;
var myAsyncFunc = once(function (cb) {
count++;
cb(null, count);
});
myAsyncFunc(function (err, result) {
assert(result === 1);
});
myAsyncFunc(function (err, result) {
assert(result === 1);
});
assert(count === 1);
Takes a node-style async function (fn
) to ensure it's only called once. The function should accept a callback as its last parameter which is called with cb(err, result)
. Returns a function that can be called any number of times but will only execute once. Arguments passed to the returned function will be passed to the fn
.
MIT