1 | var fs = require('fs');
|
2 | var Promise = require('bluebird');
|
3 | var async = require('..').async;
|
4 | var await = require('..').await;
|
5 |
|
6 |
|
7 |
|
8 | function delay(milliseconds) {
|
9 | return Promise.delay(milliseconds);
|
10 | }
|
11 |
|
12 |
|
13 | function readFile(filename) {
|
14 | return function (callback) {
|
15 | return fs.readFile(filename, callback);
|
16 | };
|
17 | }
|
18 |
|
19 |
|
20 | var longCalculation = async (function (seconds, result) {
|
21 | await (delay(seconds * 1000));
|
22 | return result;
|
23 | });
|
24 |
|
25 |
|
26 | var program = async (function () {
|
27 | try {
|
28 | console.log('zero...');
|
29 |
|
30 | var msg = await(longCalculation(1, 'one...'));
|
31 | console.log(msg);
|
32 |
|
33 | msg = await(longCalculation(1, 'two...'));
|
34 | console.log(msg);
|
35 |
|
36 | msg = await(longCalculation(1, 'three...'));
|
37 | console.log(msg);
|
38 |
|
39 | var file = await(readFile('NonExistingFilename'));
|
40 |
|
41 | msg = await(longCalculation(1, 'four...'));
|
42 | console.log(msg);
|
43 | } catch (ex) {
|
44 | console.log('Caught an error');
|
45 | }
|
46 | return 'Finished!';
|
47 | });
|
48 |
|
49 |
|
50 | program().then(function (result) {
|
51 | console.log(result);
|
52 | });
|
53 |
|
54 |
|
55 |
|
56 |
|
57 |
|
58 |
|
59 |
|
60 |
|