Socket
Socket
Sign inDemoInstall

callme

Package Overview
Dependencies
0
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    callme

Hey I just met you, and this is crazy, but here's my callback.


Version published
Weekly downloads
4
Maintainers
1
Install size
6.72 kB
Created
Weekly downloads
 

Readme

Source

node-callme Build Status

Hey I just met you, and this is crazy, but here's my callback, so definitely call it once, and once only.

This tiny module is meant to help debug pesky asynchronous code by making sure your callbacks are called just once. It also checks if the given callback is undefined or if it's called in the same event loop.

This is meant to be used during testing, not production code. But could be used to help debug.

Usage

var callme = require('callme');

function asyncMethod(a, b, callback) {
  callback = callme(callback);

  someIO(a, b, function(err, result) {
    if (err) callback(err);
    
    result = permuteTheResult(result);

    // this will throw if there is an error since it will be
    // the second time the callback is called.
    // a `return` was forgotten on the error check above.
    callback(err, result);
  });
}

The callme function returned is also an instance of EventEmitter. If you prefer to listen to the error event instead, you can do so.

function asyncMethod(a, b, callback) {
  callback = callme(callback);
  callback.on('error', function(err) {
    // do something with `err`
  });

  someIO(a, b, function() {
    // etc
  });
}

It also supports a timeout option, make sure your callbacks are definitely called.

function asyncMethod(a, b, callback) {
  callback = callme(callback, 2000); // set timeout to 2 seconds

  callback.on('error', function(err) {
    // this will fire in 2 seconds since `callback` is never called
  });
}

Install

npm install callme

Tests

Tests are written with mocha

npm test

License

MIT

Keywords

FAQs

Last updated on 29 Sep 2012

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc