Forward all subscribe arguments from Subscriber to EventEmitter

This commit is contained in:
Kevin Sawicki & Nathan Sobo
2013-05-16 13:36:51 -07:00
parent e2af4c964d
commit d76d0a030f
2 changed files with 19 additions and 3 deletions

View File

@@ -1,12 +1,15 @@
_ = require 'underscore'
module.exports =
subscribe: (eventEmitter, eventName, callback) ->
eventEmitter.on eventName, callback
subscribe: (eventEmitter, subscribeArgs...) ->
eventEmitter.on(subscribeArgs...)
@subscriptions ?= []
@subscriptionsByObject ?= new WeakMap
@subscriptionsByObject.set(eventEmitter, []) unless @subscriptionsByObject.has(eventEmitter)
eventName = _.first(subscribeArgs)
callback = _.last(subscribeArgs)
subscription = cancel: -> eventEmitter.off eventName, callback
@subscriptions.push(subscription)
@subscriptionsByObject.get(eventEmitter).push(subscription)