async-time

0.0.1 • Public • Published

async-time

Build Status

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 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)

Package Sidebar

Install

npm i async-time

Weekly Downloads

2

Version

0.0.1

License

MIT

Last publish

Collaborators

  • phated