close.js 484 B

12345678910111213141516171819202122232425262728293031323334
  1. // jshint esnext:true
  2. var chan = require('..')
  3. var co = require('co')
  4. var wait = require('co-wait')
  5. var ch = chan()
  6. co(function *() {
  7. var val
  8. while (!ch.done()) {
  9. val = yield ch
  10. if (val !== ch.empty) {
  11. console.log(val)
  12. }
  13. }
  14. console.log('Done!')
  15. })()
  16. co(function *() {
  17. var n = 10
  18. while (n-- > 0) {
  19. yield wait(100)
  20. try {
  21. ch(n)
  22. } catch(err) {
  23. console.log(err.message)
  24. }
  25. if (n === 5) {
  26. ch.close()
  27. }
  28. }
  29. })()