node package manager
Painless code sharing. npm Orgs help your team discover, share, and reuse code. Create a free org »

async-once

async-once

NPM version Downloads Build Status AppVeyor Build Status Coveralls Status Gitter chat

Guarantee a node-style async function is only executed once.

Usage

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

API

once(fn)

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.

License

MIT