Skip to content

Commit 8f6b776

Browse files
committed
Improve examples
1 parent 6732c6a commit 8f6b776

File tree

4 files changed

+50
-3
lines changed

4 files changed

+50
-3
lines changed

.eslintignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
node_modules/
22
Exercises/
3+
7-break.js

JavaScript/e-reduce.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ const sum = (acc, val) => (count++, acc + val);
66
const res = arr.reduce(sum);
77
console.log({ res, count });
88

9-
const reduce = (fn, acc, [cur, ...rest]) => cur === undefined ?
10-
acc : reduce(fn, fn(acc, cur), rest);
9+
const reduce = (fn, acc, [cur, ...rest]) => (
10+
cur === undefined ? acc : reduce(fn, fn(acc, cur), rest)
11+
);
1112

1213
const res2 = reduce(sum, 0, arr);
1314
console.log({ res2 });

JavaScript/h-async.js

+8-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
const range = {
44
start: 1,
5-
end: 10,
5+
end: 1000,
66
[Symbol.asyncIterator]() {
77
let value = this.start;
88
return {
@@ -20,8 +20,15 @@ console.dir({
2020
symbols: Object.getOwnPropertySymbols(range),
2121
});
2222

23+
let k = 0;
24+
25+
const timer = setInterval(() => {
26+
console.log('next ', k++);
27+
}, 10);
28+
2329
(async () => {
2430
for await (const number of range) {
2531
console.log(number);
2632
}
33+
clearInterval(timer);
2734
})();

JavaScript/i-async.js

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
'use strict';
2+
3+
const range = {
4+
start: 1,
5+
end: 1000,
6+
[Symbol.asyncIterator]() {
7+
let value = this.start;
8+
return {
9+
next: () => new Promise((resolve, reject) => {
10+
setTimeout(() => {
11+
resolve({
12+
value,
13+
done: value++ === this.end + 1
14+
});
15+
}, 0);
16+
})
17+
};
18+
}
19+
};
20+
21+
console.dir({
22+
range,
23+
names: Object.getOwnPropertyNames(range),
24+
symbols: Object.getOwnPropertySymbols(range),
25+
});
26+
27+
let k = 0;
28+
29+
const timer = setInterval(() => {
30+
console.log('next ', k++);
31+
}, 10);
32+
33+
(async () => {
34+
for await (const number of range) {
35+
console.log(number);
36+
}
37+
clearInterval(timer);
38+
})();

0 commit comments

Comments
 (0)