0.0.1 • Published 12 years ago

async.coffee v0.0.1

Weekly downloads
3
License
-
Repository
github
Last release
12 years ago

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 @callback in their context, also aliased as @cb and @c. They also receive it as their first argument.

  • The @callback function receives the results as @results, also aliased to @res and @response and the error as @err, @e or @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()
0.0.1

12 years ago