Make all calls to a function queued and asynchronously guarded
JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test
.gitignore
README.md
asynccallguard.js
example.js
package.json

README.md

AsyncCallGuard Build Status

Make all calls to a function queued and asynchronously guarded

NPM

Install the module with: npm install asynccallguard

Usage

var AsyncCallGuard = require('asynccallguard');

var w  = 100;
var f  = function(){console.log(Array.prototype.slice.call(arguments));};
var f2 = AsyncCallGuard(f, function MyGuard(fcall){
  //
  // ... Some complex logic here...
  //
  w *= 2;
  console.log('MyGuard was called, waiting for '+w+'ms before running f');
  setTimeout(fcall, w);
});

// Make multiple calls
f2();
f2(1,2);
f2(3,4);
f2(5,6,7);

// Produce:
// MyGuard was called, waiting for 200ms before running f
// []
// MyGuard was called, waiting for 400ms before running f
// [ 1, 2 ]
// MyGuard was called, waiting for 800ms before running f
// [ 3, 4 ]
// MyGuard was called, waiting for 1600ms before running f
// [ 5, 6, 7 ]

Release History

v1.0.0 - Initial commit (13 apr. 2012)

Donate

Donate Bitcoins

License

Copyright (c) 2013 Francois-Guillaume Ribreau Licensed under the MIT license.