####普通の書き方
let i = 0;
const update = () => {
console.log(i);
i++;
}
setInterval(update, 1000);
####再帰関数
const update = (i = 0) => {
console.log(i);
return setTimeout(() => update(i + 1), 1000);
};
update();
####クロージャー
const update = () => {
let i = 0;
return () => console.log(i++);
};
setInterval(update(), 1000);
短く書くと
const update = (i = 0) => () => console.log(i++);
setInterval(update(), 1000);
####Promise
(async() => {
for (let i = 0; true; i++) {
await new Promise(res => setTimeout(res, 1000));
console.log(i);
}
})();