beforecb
Wrap a function to call a function before its callback is called
Usage
You can do the following without having to insert code into the function or wrap every call
- Time async functions
- Output when your program is entering / exiting functions
var beforecb = require("beforecb");
var wrapped = beforecb(options, function original, function beforeCbFunction);
Arguments:
options
- Optional - An object with any of the following options:
- async - the first argument to beforeCbFunction will be a callback and your original callback will only be called once this is called
- allArgs - arguments to the original function are passed as an array to the first argument of beforeCbFunction
original
- The function you want to wrap.beforeCbFunction
- A function to call just before the wrapped functions callback.
API Info
- beforecb returns a new function
- You can pass multiple arguments to it, the last function will be presumed to be the callback.
- All arguments to the callback will be passed to the beforecb function.
- By default the original callback is called after beforeCbFunction has returned (If
options.async
is not set) - When in async mode all arguments are added as the property
args
on the callback passed to the beforeCbFunction argument
Examples
var beforefn = require("beforefn");
var beforecb = require("../");
function slowFunc(callback) {
for (var i = 0; i < 10e7; i++) {}
callback();
}
var startTime;
slowFunc = beforefn(slowFunc, function() {
startTime = Date.now();
});
slowFunc = beforecb(slowFunc, function() {
console.log("Total time: " + (Date.now() - startTime));
});
slowFunc(function() {
console.log("done");
});
See Also