1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| // jshint esnext:true
|
| var request = require('superagent')
| var chan = require('..')
| var co = require('co')
| var wait = require('co-wait')
|
| var urls = [
| 'http://google.com',
| 'http://medium.com',
| 'http://segment.io',
| 'http://cloudup.com',
| 'http://github.com'
| ]
|
| var ch = chan(3) // buffer size 3
|
| co(function *() {
| for (var i = 0, l = urls.length; i < l; i++) {
| yield ch.async(request.get, urls[i])
| console.log('Response added to channel for: ' + urls[i])
| }
| ch.close()
| })()
|
| co(function *() {
| while (!ch.done()) {
| yield ch
| yield wait(1000)
| console.log('Channel yielded')
| }
| })()
|
|