UNPKG

1.5 kBJavaScriptView Raw
1var fs = require('fs');
2var Promise = require('bluebird');
3var async = require('..').async;
4var await = require('..').await;
5
6
7// A function that returns a promise.
8function delay(milliseconds) {
9 return Promise.delay(milliseconds);
10}
11
12// A thunked version of fs.readFile.
13function readFile(filename) {
14 return function (callback) {
15 return fs.readFile(filename, callback);
16 };
17}
18
19// A slow asynchronous function, written in async/await style.
20var longCalculation = async (function (seconds, result) {
21 await (delay(seconds * 1000));
22 return result;
23});
24
25// Another synchronous-looking function written in async/await style.
26var 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// Execute program() and print the result.
50program().then(function (result) {
51 console.log(result);
52});
53
54// Outputs (with one second delays between the numbers):
55// zero...
56// one...
57// two...
58// three...
59// Caught an error
60// Finished!