async.coffee
v0.0.1
Published
Coffee DSL for Async
Readme
Async.coffee
A CoffeeScript DSL for Async.
npm install async.coffee
In Action
async.parallel ->
@fn one: ->
setTimeout =>
@callback null, 1
, 500
@fn two: ->
setTimeout =>
@callback null, 2
, 200
@callback ->
expect(@results.one).toBe 1
expect(@results.two).toBe 2
expect(@err).toBeUndefined()Concepts
async functions have
@callbackin their context, also aliased as@cband@c. They also receive it as their first argument.The
@callbackfunction receives the results as@results, also aliased to@resand@responseand the error as@err,@eor@error. It also receives them as arguments:(err, res) ->.
Supported Functions
- Parallel
- Map
Parallel
@fn- receives an object of named functions.@callback- (optional) the callback function.
async.parallel ->
@fn one: ->
setTimeout =>
@callback null, 1
, 500
@fn two: ->
setTimeout =>
@callback null, 2
, 200
@callback ->
expect(@results.one).toBe 1
expect(@results.two).toBe 2
expect(@err).toBeUndefined()Map (array, function)
@iter- receives an object of named functions.@callback- (optional) the callback function.
async.map [1..100], ->
@iter ->
setTimeout =>
@callback null, @item*2
, 100
@callback ->
for i in [0...100]
expect(@results[i]).toBe((i+1)*2)
expect(@err).toBeUndefined()
done()