async-time
v0.0.1
Published
Time async functions using async-done for execution and completion.
Downloads
16
Maintainers
Readme
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);
// listen for timing events
bus.on('start', function(evt){
// function has started
console.log(evt);
});
bus.on('stop', function(evt){
// function has stopped
console.log(evt);
});
asyncTime(function(cb){
// do async things
cb(null, 2);
}, function(err, res){
// `error` will be undefined on successful execution of the first function.
// `result` will be the result from the first function.
})
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 toasyncTime
.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 toasyncTime
.timestamp
: timestamp of when the function started.duration
: high resolution time between start and stop events. Generated byprocess.hrtime(startTime)