Skip to content

Instantly share code, notes, and snippets.

@dyoder
Created December 9, 2014 02:57
Show Gist options
  • Save dyoder/2ba963a98dc556f9da47 to your computer and use it in GitHub Desktop.
Save dyoder/2ba963a98dc556f9da47 to your computer and use it in GitHub Desktop.
http = require "http"
{promise, all} = require "when"
get = (url) ->
promise (resolve, reject) ->
http.get url
.on "response", (response) ->
resolve response
.on "error", (error) ->
resolve error
parallel_get = (urls...) ->
all (get url for url in urls)
assert = require "assert"
{call} = require "when/generator"
call ->
responses = yield parallel_get(
"http://en.wikipedia.org/wiki/Coroutine",
"http://en.wikipedia.org/wiki/Generator_(computer_science)",
"http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life",
"http://en.wikipedia.org/wiki/Cellular_automaton")
for response in responses
assert.equal response.statusCode, 200
@rstormsf
Copy link

you can even make it like that

get = (url) ->
  promise (resolve, reject) ->
    http.get url
    .on "response", resolve
    .on "error", reject

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment