333
schangxiang@126.com
2025-09-19 18966e02fb573c7e2bb0c6426ed792b38b910940
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')
  }
})()