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
33
34
| // 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()
| }
| }
| })()
|
|