1234567891011121314151617181920212223242526272829303132 |
- // 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')
- }
- })()
|