setInterval(async () => { const response = await fetch("<APIエンドポイント>") const data = await response.json() console.log("OK") },1000) 1秒おきに「OK」が出力されるでしょうか?答えはNoです。リクエストからレスポンスまでの時間が1秒未満であれば、1秒おきにメッセージが出力されますが、それ以上になると出力されるタイミングはバラバラです。これは、setInterval の仕組みが、指定された関数の処理時間に関係なく指定されたインターバルで実行されるようになっているからです。これの何が問題かといいますと、サーバからのレスポンス待ちのときに次々とリクエストされてしまいサーバへの負荷に繋がってしまいます。では、遅延を考慮した定期実行を行う場合はどうしたらよいでしょう? 再
![setIntervalとsetTimeoutの使う際には注意を - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/6ec22439d77ddb6b5109a8126f9c48987dccbf14/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9c2V0SW50ZXJ2YWwlRTMlODElQThzZXRUaW1lb3V0JUUzJTgxJUFFJUU0JUJEJUJGJUUzJTgxJTg2JUU5JTlBJTlCJUUzJTgxJUFCJUUzJTgxJUFGJUU2JUIzJUE4JUU2JTg0JThGJUUzJTgyJTkyJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1kOTJlOTE2OTc4ZWQ5ZjYyNjk0YjA2YjQ5ZDgxM2RkYg%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTcxNiZ0eHQ9JTQwbXItaGlzYS1jaGlsZCUyMGluJTIwJUUzJTgzJTk1JUUzJTgzJUFDJUUzJTgzJTlDJUUzJTgzJUFGJUUzJTgzJUJDJUUzJTgyJUFGJUUzJTgyJUI5JUU2JUEwJUFBJUU1JUJDJThGJUU0JUJDJTlBJUU3JUE0JUJFJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzImdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1hMzE4ZjlkNDdlZjdkYjNmMTZjN2E3ODBiZTFiNDM4Yw%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D9869742f83fbb2eeb185284cf032b9d5)