async-try, helper module to debug asyncronous code.
usage:
var TRY = require("async-try").TRY; var waitForIt = function(time, callback){ console.log("this module is legen..."); console.log("...wait for it..."); if ( time > 3 ){ setTimeout(function(){ console.log("...dary"); callback(null, "legendary!"); }, time*1000 ); } else { callback("need more patience"); }}; var waitFor = function(time){ return function(callback) { waitForIt(time, callback); }} TRY( "waiting for it", waitFor(5), console.log, function(result){ console.log("This module is " + result);}) var dontWait = function(callback){ TRY( "pretending to wait for it", waitFor(2), callback, function(result){ console.log("This module is " + result); });} var logError = function(error){ console.log("[ERROR] " + error);}TRY( "not waiting for it", dontWait, logError, function(result){ console.log("This module is " + result);})
will output
this module is legen......wait for it...this module is legen......wait for it...[ERROR] need more patience | While pretending to wait for it at: dontWait (C:\Path\to\file.js:27:2) | While not waiting for it at: Object.<anonymous> (C:\Path\to\file.js:35:1)...daryThis module is legendary!