Skip to content

Commit 42f8fba

Browse files
committed
3.2
1 parent a1fca7c commit 42f8fba

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed
+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { EventEmitter } from 'events';
2+
3+
/**
4+
* @param {number} number
5+
* @param {(n:number)=>any} callback
6+
*/
7+
function ticker(
8+
number,
9+
callback
10+
) {
11+
const emitter = new EventEmitter();
12+
let tick_count = 0;
13+
14+
let ticker50 = () => {
15+
setTimeout(() => {
16+
if (ticker50 !== null) {
17+
emitter.emit('tick');
18+
tick_count++;
19+
ticker50();
20+
}
21+
}, 50);
22+
};
23+
24+
setTimeout(() => {
25+
ticker50 = null;
26+
callback(tick_count);
27+
}, number);
28+
29+
ticker50();
30+
31+
return emitter;
32+
};
33+
34+
const runningTicker = ticker(1000, (tick_count) => {
35+
console.log(tick_count);
36+
});
37+
38+
runningTicker.on('tick', () => console.log('tick'));

0 commit comments

Comments
 (0)