-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathsync.js
45 lines (37 loc) · 782 Bytes
/
sync.js
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
35
36
37
38
39
40
41
42
43
44
45
var log = require('./log');
// Sync version
var sync1 = function(input) {
log('async1, input:', input);
return ++input;
};
var sync2 = function(input) {
log('async2, input:', input);
/////////////////////////////
// Ways to report error
/////////////////////////////
// throw new Error('from sync2');
/////////////////////////////
return ++input;
};
var sync3 = function(input) {
log('async3, input:', input);
return ++input;
};
function delay(ms) {
log('delay, ms:', ms);
var end_time = (new Date()).valueOf() + ms;
var now = new Date();
while (now.valueOf() < end_time) {
now = new Date();
}
log('delay: done');
}
try {
var r1 = sync1(0);
delay(2000);
var r2 = sync2(r1);
var r3 = sync3(r2);
log('Result:', r3);
} catch(e) {
log('Catched!', e);
}