使用开始和停止按钮在javascript中启动和停止循环

sba*_*den 1 javascript user-interface

我有一个开始按钮,当点击时运行一个循环的功能.如何获取stopBTN.onClick以停止正在运行的循环?

https://jsfiddle.net/vduxbnkj/

startBTN.onClick = function(){ runLoop(); }

function runLoop(){
    while(condition true){
        getFolderContentsLoop();
    }
}

function getFolderContentsLoop(){
    //loop through folders & files looking for .txt file and if "finished"
      delete files and folders
}
Run Code Online (Sandbox Code Playgroud)

dec*_*eze 6

如果您正在运行一个简单的for (..)循环,则无法通过外部影响停止此循环.一切都发生在Javascript中的同一个线程中,除非您的代码在某个时刻"结束"并将控制权返回给浏览器一段时间没有UI交互可能发生.拥有"循环"的最简单方法是通过setTimeoutsetInterval:

interval = null;

startBTN.onclick = function () {
    var i = 0;
    interval = setInterval(function () {
        console.log(i++);  // this is inside your loop
    }, 1);
};

stopBTN.onclick = function () {
    clearInterval(interval);
};
Run Code Online (Sandbox Code Playgroud)