用途としては、ユーザーに通知する popup animation を順番に出す、みたいなのを想定している。
class DeferredQueue
constructor: ->
@head = $.Deferred()
@cur = @head
addQueue: (deferred_func) ->
@cur = @cur.pipe deferred_func
popStart: ->
@head.resolve()
@head = $.Deferred()
# how to use
popupQueue = new DeferredQueue
popupQueue.addQueue ->
d = $.Deferred()
setTimeout ->
console.log "deferred queues 1"
d.resolve()
, 5500
d.promise()
popupQueue.addQueue ->
d = $.Deferred()
setTimeout ->
console.log "deferred queues 2"
d.resolve()
, 1500
d.promise()
popupQueue.popStart()