Skip to content

Instantly share code, notes, and snippets.

@jeremyruppel
Forked from bmarini/async.coffee
Created November 16, 2011 17:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jeremyruppel/1370778 to your computer and use it in GitHub Desktop.
Save jeremyruppel/1370778 to your computer and use it in GitHub Desktop.
async callbacks in a loop
app.get '/riders', (req, res) ->
redis.smembers 'riders', ( err, replies ) ->
pool = new RequestPool ( rider, callback ) -> redis.hgetall rider, callback
pool.push rider for rider in replies
pool.go -> alert 'Done!'
class RequestPool
constructor : ( @block ) ->
@responses = [ ]
@requests = [ ]
push : ( request ) -> @requests.push request
go : ( complete ) ->
for request in @requests
@block request, ( response ) ->
@responses.push response
complete @responses if @responses.length is @requests.length
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment