32 lines
448 B
Markdown
32 lines
448 B
Markdown
importance: 4
|
|
|
|
---
|
|
|
|
# Rewrite setTimeout with setInterval
|
|
|
|
Here's the function that uses nested `setTimeout` to split a job into pieces.
|
|
|
|
Rewrite it to `setInterval`:
|
|
|
|
```js run
|
|
let i = 0;
|
|
|
|
let start = Date.now();
|
|
|
|
function count() {
|
|
|
|
if (i == 1000000000) {
|
|
alert("Done in " + (Date.now() - start) + 'ms');
|
|
} else {
|
|
setTimeout(count, 0);
|
|
}
|
|
|
|
// a piece of heavy job
|
|
for(let j = 0; j < 1000000; j++) {
|
|
i++;
|
|
}
|
|
|
|
}
|
|
|
|
count();
|
|
```
|