Take a look at the most prominent JavaScript control flow libraries: Async.js, Step, Seq. If you were to use these libraries in CoffeeScript, your code would be an ugly mess. Async.js / CoffeeScript async = require('async') async.series( (-> #first function ), (-> #second function ) )