Skip to content

Instantly share code, notes, and snippets.

function dostuff(callback) {
task1(function(x) {
task2(x, function(y) {
task3(y, function(z) {
if (z < 0) {
callback(0);
} else {
callback(z);
});
});
var dostuffEmitter = new EventEmitter();
dostuffEmitter.on('task1', function (callback) {
dostuffEmitter.emit('task2', x, callback);
});
dostuffEmitter.on('task2', function (x, callback) {
dostuffEmitter.emit('task3', y, callback);
});
var dostuffEmitter = new EventEmitter();
dostuffEmitter.on('task1', function (callback) {
if (error) {
dostuffEmitter.emit('error', error);
return;
}
dostuffEmitter.emit('task2', x, callback);
});
dostuffEmitter.on('task2', function (x, callback) {
if (error) {
dostuffEmitter.emit('error', error);
return;
}
dostuffEmitter.emit('telemetry', someMetricHere);
dostuffEmitter.emit('task3', y, callback);
});
dostuffEmitter.on('task1', function (callback) {
dostuffEmitter.emit('task3', x, callback);
});
dostuffEmitter.on('task2', function (x, callback) {
dostuffEmitter.emit('finish', y, callback);
});
dostuffEmitter.on('task3', function (y, callback) {
dostuffEmitter.emit('task2', z, callback);
  1. General Background and Overview
@tristanls
tristanls / gist:b47430985858978669b7
Created May 13, 2015 01:12
example json response
{
"message": "hello there",
"status": "200 OK"
}
@tristanls
tristanls / loop_v_nextTick.js
Created December 21, 2011 21:11
loop v. nextTick benchmark
var startFast;
var startSlow;
var size = 1000000; // million
var fast = function () {
for ( var i = 0; i < size; i++ ) {
( function () {
var j = i;
return function () {
@tristanls
tristanls / loop_v_nextTick_no_closures.js
Created December 21, 2011 23:32
loop v. nextTick benchmark ( no closures )
var startFast;
var startSlow;
var size = 1000000; // million
var loopCount = 0;
var loopTest = function () {
loopCount++;
if ( loopCount == ( size - 1 ) )
console.log( 'loop result: ' + ( new Date() - startFast ) + 'ms' );
@tristanls
tristanls / loop_v_nextTick_bm_no_closures.js
Created December 22, 2011 16:07
loop v nextTick benchmark ( no closures )
var startLoop;
var startNextTick;
var size = 1000000; // million
var loopCount = 0;
var noop = 0;
var loopTest = function () {
loopCount++;
if ( loopCount < ( size - 1 ) )