var EventEmitter = require("events").EventEmitter var events = new EventEmitter() var deferred = Promise.defer(); events.once("ready", function() { console.log("events once callback") deferred.resolve("how amazing") }) console.log("waiting 3 seconds"); setTimeout(function() { events.emit("ready") }, 3000) module.exports = { ready: deferred.promise }