Skip to content

Instantly share code, notes, and snippets.

@walling
walling / async.coffee
Created July 19, 2011 00:23 — forked from tcr/async.coffee
Lean and Mean Serial function in CoffeeScript
# Lean and Mean Serial DSL for CoffeeScript
# (based of https://gist.github.com/1090670 by timcameronryan)
serial = (spec) ->
commands = (func for key, func of spec when key != 'catch')
next = (err, args...) ->
return spec.catch(err) if err
commands.shift().apply(next, args) if commands.length > 0
next null
return