close.js 484 字节
// jshint esnext:true

var chan = require('..')
var co   = require('co')
var wait = require('co-wait')
var ch   = chan()

co(function *() {
  var val
  while (!ch.done()) {
    val = yield ch
    if (val !== ch.empty) {
      console.log(val)
    }
  }
  console.log('Done!')
})()

co(function *() {
  var n = 10

  while (n-- > 0) {
    yield wait(100)
    try {
      ch(n)
    } catch(err) {
      console.log(err.message)
    }

    if (n === 5) {
      ch.close()
    }
  }
})()