Skip to content

Commit 6de39f9

Browse files
committed
Add more examples
1 parent e034bfa commit 6de39f9

File tree

3 files changed

+54
-6
lines changed

3 files changed

+54
-6
lines changed

JavaScript/1-callback.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
'use strict';
22

33
const add = (a, b) => a + b;
4+
45
const res = add(2, 3);
56
console.log(`add(2, 3) = ${res}`);
67

8+
// Return result with callback
9+
710
const sum = (a, b, callback) => callback(a + b);
11+
812
sum(2, 3, (res) => {
913
console.log(`sum(2, 3) = ${res}`);
1014
});

JavaScript/2-callback-use.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,34 @@
11
'use strict';
22

3+
// In sync operations
4+
5+
{
6+
const boxes = [{ count: 3 }, { count: 0 }, { count: 7 }];
7+
const goods = boxes.filter(({ count }) => count > 0);
8+
console.log({ goods });
9+
}
10+
11+
// Named callbacks
12+
13+
{
14+
const boxes = [{ count: 3 }, { count: 0 }, { count: 7 }];
15+
const notEmpty = ({ count }) => count > 0;
16+
const goods = boxes.filter(notEmpty);
17+
console.log({ goods });
18+
}
19+
20+
// In async operations
21+
22+
const boxes = [{ count: 3 }, { count: 0 }, { count: 7 }];
23+
24+
const timer = setInterval(() => {
25+
const next = boxes.shift();
26+
console.log(`Next box contains: ${next.count}`);
27+
if (boxes.length === 0) clearInterval(timer);
28+
}, 10);
29+
30+
// In async I/O
31+
332
const fs = require('node:fs');
433

534
fs.readFile('./1-callback.js', 'utf8', (err, data) => {

JavaScript/3-callback-named.js

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,26 @@
22

33
const fs = require('node:fs');
44

5-
const print = (fileName, err, data) => {
6-
console.log({ lines: data.split('\n').length });
7-
};
5+
{
6+
const print = (file, err, data) => {
7+
console.log({ file, lines: data.split('\n').length });
8+
};
89

9-
const fileName = './1-callback.js';
10+
const fileName = './1-callback.js';
1011

11-
const callback = print.bind(null, fileName);
12-
fs.readFile(fileName, 'utf8', callback);
12+
const callback = print.bind(null, fileName);
13+
fs.readFile(fileName, 'utf8', callback);
14+
}
15+
16+
// Callback with closure
17+
18+
{
19+
const print = (file) => (err, data) => {
20+
console.log({ file, lines: data.split('\n').length });
21+
};
22+
23+
const fileName = './1-callback.js';
24+
25+
const callback = print(fileName);
26+
fs.readFile(fileName, 'utf8', callback);
27+
}

0 commit comments

Comments
 (0)