Delay flushes performed after getting an op acknowledgement as well

This commit is contained in:
James Allen 2015-04-17 17:32:23 +01:00
parent 8a32ca1b64
commit 87d625b5e0

View file

@ -200,7 +200,7 @@ class Doc
callback null, oldInflightOp for callback in @inflightCallbacks
# Send the next op.
@flush()
@delayedFlush()
else if msg.op
# We got a new op from the server.
@ -247,7 +247,7 @@ class Doc
# Only one op can be in-flight at a time, so if an op is already on its way then
# this method does nothing.
flush: =>
delete @flushTimeout
@flushTimeout = null
#console.log "CALLED FLUSH"
return unless @connection.state == 'ok' and @inflightOp == null and @pendingOp != null
@ -279,8 +279,9 @@ class Doc
@emit 'change', op
# A timeout is used so if the user sends multiple ops at the same time, they'll be composed
# & sent together.
@delayedFlush()
delayedFlush: () ->
if !@flushTimeout?
@flushTimeout = setTimeout @flush, @_flushDelay || 0