Skip to content

Commit e21db3d

Browse files
committed
Initial commit
0 parents  commit e21db3d

24 files changed

Lines changed: 375 additions & 0 deletions

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
node_modules
2+
npm_debug.log
3+
.DS_Store

1-callbacks.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
const fs = require('fs');
2+
3+
fs.readFile('file1.txt', (err, data) => {
4+
console.log(err || data.toString());
5+
fs.readFile('file2.txt', (err, data) => {
6+
console.log(err || data.toString());
7+
fs.readFile('file3.txt', (err, data) => {
8+
console.log(err || data.toString());
9+
});
10+
});
11+
});

10-files.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
const fs = require('fs');
2+
const async = require('./async');
3+
const promisify = require('./promisify');
4+
5+
const readFile = promisify(fs.readFile);
6+
7+
function readTextFile(filename) {
8+
return readFile(filename).then(buffer => buffer.toString());
9+
}
10+
11+
async(function* () {
12+
console.log(yield readTextFile('file1.txt'));
13+
console.log(yield readTextFile('file2.txt'));
14+
console.log(yield readTextFile('file3.txt'));
15+
});

11-errors.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
const fs = require('fs');
2+
const async = require('./async');
3+
const promisify = require('./promisify');
4+
5+
const readFile = promisify(fs.readFile);
6+
7+
function readTextFile(filename) {
8+
return readFile(filename)
9+
.then(buffer => buffer.toString());
10+
}
11+
12+
async(function* () {
13+
console.log(yield readTextFile('file1.txt'));
14+
try {
15+
console.log(yield readTextFile('file2-!!!.txt'));
16+
} catch (e) {
17+
console.log(e);
18+
}
19+
console.log(yield readTextFile('file3.txt'));
20+
});

12-errors.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const fs = require('fs');
2+
const async = require('./async');
3+
const promisify = require('./promisify');
4+
5+
const readFile = promisify(fs.readFile);
6+
7+
function readTextFile(filename) {
8+
return readFile(filename)
9+
.then(buffer => buffer.toString());
10+
}
11+
12+
async(function* () {
13+
console.log(yield readTextFile('file1.txt'));
14+
console.log(yield readTextFile('file2-!!!.txt'));
15+
console.log(yield readTextFile('file3.txt'));
16+
}).catch(err => console.log(err));

2-promises.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
const fs = require('fs');
2+
3+
function readFile(filename) {
4+
return new Promise((resolve, reject) => {
5+
fs.readFile(filename, (err, data) => {
6+
if (err) {
7+
reject(err);
8+
} else {
9+
resolve(data.toString());
10+
}
11+
});
12+
});
13+
}
14+
15+
readFile('file1.txt').then((data) => {
16+
console.log(data);
17+
return readFile('file2.txt');
18+
}).then((data) => {
19+
console.log(data);
20+
return readFile('file3.txt');
21+
}).then((data) => {
22+
console.log(data);
23+
});

3-promises.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
const fs = require('fs');
2+
const promisify = require('./promisify');
3+
4+
const readFile = promisify(fs.readFile);
5+
6+
readFile('file1.txt').then((data) => {
7+
console.log(data.toString());
8+
return readFile('file2.txt');
9+
}).then((data) => {
10+
console.log(data.toString());
11+
return readFile('file3.txt');
12+
}).then((data) => {
13+
console.log(data.toString());
14+
});

4-promises.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
const fs = require('fs');
2+
const promisify = require('./promisify');
3+
4+
const readFile = promisify(fs.readFile);
5+
6+
function readTextFile(filename) {
7+
let promise = readFile(filename).then(data => data.toString());
8+
return promise;
9+
}
10+
11+
readTextFile('file1.txt').then((data) => {
12+
console.log(data);
13+
return readTextFile('file2.txt');
14+
}).then((data) => {
15+
console.log(data);
16+
return readTextFile('file3.txt');
17+
}).then((data) => {
18+
console.log(data);
19+
});

5-catch.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
const fs = require('fs');
2+
const promisify = require('./promisify');
3+
4+
const readFile = promisify(fs.readFile);
5+
6+
function readTextFile(filename) {
7+
let promise = readFile(filename).then(data => data.toString());
8+
return promise;
9+
}
10+
11+
readTextFile('file1.txt').then((data) => {
12+
console.log(data);
13+
return readTextFile('file2.txt');
14+
}).then((data) => {
15+
console.log(data);
16+
return readTextFile('file3-!!!.txt');
17+
}).then((data) => {
18+
console.log(data);
19+
}).catch((reason) => {
20+
console.log('Cannot read file');
21+
console.log(reason);
22+
});

6-onReject.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
const fs = require('fs');
2+
const promisify = require('./promisify');
3+
4+
const readFile = promisify(fs.readFile);
5+
6+
function readTextFile(filename) {
7+
let promise = readFile(filename).then(data => data.toString());
8+
return promise;
9+
}
10+
11+
readTextFile('file1.txt').then((data) => {
12+
console.log(data);
13+
return readTextFile('file2-!!!.txt');
14+
}).then((data) => {
15+
console.log(data);
16+
return readTextFile('file3.txt');
17+
}, (reason) => {
18+
console.log('Cannot read file');
19+
console.log(reason);
20+
return readTextFile('file3.txt');
21+
}).then((data) => {
22+
console.log(data);
23+
});

0 commit comments

Comments
 (0)