Javascriptの非同期処理で前の処理を中断したい

前提

Javascriptで非同期処理のコードを書いています。
Startボタンを押すと一秒おきにConsole.logにHello表示するコードを書いたのですが、Startボタンを連打すると前の処理が残っていてうまく動きません。
ボタンを連打してもうまく動くように、ボタンを押したら前の処理を中断したいのですがなにか方法はないでしょうか?

何を使えばいいなどのヒントだけでもいいのでよろしくお願いします。

該当のソースコード

Html

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>test</title> <script src="js/q1.js"></script> </head> <body> <div class="container"> <button type="button" onclick="test1()">Start</button> </div> </body> </html>

Javascript

const _sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); const test1=async()=>{ for(let i=0;i<100;i++){ console.log("Hello"); await _sleep(1000); }}

コメントを投稿

0 コメント