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
| var Future;
| try {
| Future = require('fibers/future');
| } catch (err) {
| Future = require('future');
| }
|
| function Timer(ms) {
| var future = new Future;
| function ret() {
| future.return();
| }
| ms ? setTimeout(ret, ms) : process.nextTick(ret);
| return future;
| }
|
| ~function() {
| var timer = new Timer(10), tick = new Timer;
| Future.wait(timer, tick);
| timer.get();
| tick.get();
| return 'pass';
| }.future()().resolve(function(err, val) {
| if (err) throw err;
| console.log(val);
| });
|
|