Skip to content

Instantly share code, notes, and snippets.

@beppu
Created April 21, 2015 22:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save beppu/079e00d6479d1aa1f61e to your computer and use it in GitHub Desktop.
Save beppu/079e00d6479d1aa1f61e to your computer and use it in GitHub Desktop.
my most recent take on taming EventEmitter
events = require \events
EventEmitter = events.EventEmitter
P = require \bluebird
fifo = require \./app/shared/fifo
q = fifo.make!
ee = new EventEmitter
chain = P.resolve(true)
set-timeout (-> ee.emit \error, { +aaaa }), 500ms
p = chain.then((r) ->
console.log { r }
P.delay 1000ms
).then(->
console.log "made it"
process.exit 0
).cancellable!catch(P.CancellationError, (err) ->
console.log \err, err
)
ee.on \error, (err) ->
console.warn \cancel
p.cancel!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment