Calls to EventEmitter#pause and #resume can be nested

This commit is contained in:
Nathan Sobo
2012-11-29 18:51:27 -07:00
parent 7eb1f14f05
commit 4d63712b52

View File

@@ -66,12 +66,15 @@ module.exports =
@afterUnsubscribe?() if @subscriptionCount() < subscriptionCountBefore
pauseEvents: ->
@queuedEvents = []
@pauseCount ?= 0
if @pauseCount++ == 0
@queuedEvents ?= []
resumeEvents: ->
queuedEvents = @queuedEvents
@queuedEvents = null
@trigger(event...) for event in queuedEvents
if --@pauseCount == 0
queuedEvents = @queuedEvents
@queuedEvents = null
@trigger(event...) for event in queuedEvents
subscriptionCount: ->
count = 0