I\'m using jQuery and I have a loop of asynchronous AJAX requests. I know I can wait for them all to be finished by using the handy \'$.when.apply(array_of_requests).then()\
Take a look at $.Callbacks in 1.7. I think you'll be excited about the flexibility of making your own "flows" and the ability to reuse them, run once, etc.
There's nothing wrong with what you did (the apply pattern may not be a first choice of most, they usually just list them in a $.when(a, b, c....)--but you may like the syntax of $.Callbacks better.