async-time
Time async functions using async-done for execution and completion.
Usage
var EE = require('events').EventEmitter;
var createTimer = require('async-time');
var bus = new EE();
var asyncTime = createTimer(bus);
bus.on('start', function(evt){
console.log(evt);
});
bus.on('stop', function(evt){
console.log(evt);
});
asyncTime(function(cb){
cb(null, 2);
}, function(err, res){
})
API
Once a timing function is created, it is used the same as async-done
.
createTimer(EventEmitter)
=> Function
The main export is a function that allows you to create a timing function.
You must pass it an EventEmitter
instance (or an object with emit
and on
methods) or it will throw.
The EventEmitter
instance is the bus timing events are published on.
asyncTime(fn, callback)
See async-done
docs.
Events
start
The event fired when a function begins.
Properties:
id
: uuid generated for each function. Useful for tying start and end events together.name
: name property of the function given to asyncTime
.timestamp
: timestamp of when the function started.
stop
The event fired when a function finishes.
Properties:
id
: uuid generated for each function. Useful for tying start and end events together.name
: name property of the function given to asyncTime
.timestamp
: timestamp of when the function started.duration
: high resolution time between start and stop events. Generated by process.hrtime(startTime)