var _ = require('lodash'); var Promise = require('bluebird'); var EventEmitter = require('events').EventEmitter; var eventEmitter = new EventEmitter(); var testAsync = function testAsync() { return new Promise(function(resolve, reject) { setTimeout(_.partial(resolve, 'goodbye'), 100); }); }; eventEmitter.on('test', function() { testAsync(); }); setInterval(function() { for (var i = 0; i < 10; i++) { eventEmitter.emit('test'); } }, 100); var memoryLogger = require('memory-logger'); memoryLogger.start();