In the context of synchronization, you should do the following:
var time = function(fn){
var start = Date.now();
fn();
return start - Date.now()
}
var elapsed = time(function(){
}
:
var time = function(fn, cb){
var start = Date.now();
fn(null, function(){
var args = [].slice.call(arguments);
args.splice(1, 0, Date.now() - start);
cb.apply(this,args);
})
}
time(function(err, cb){
cb();
}, function(err, elapsed /*, params */){
});
, , ( ).