尝试 运行 一个 while 循环指定的时间...不退出

Trying to run a while loop for a specified amount of time...Not exiting

所以,我有一个本地主机网站,您可以在其中按一个按钮来启动 while 循环。我的意图是遍历此 while 循环和 "wait" 以获取来自其他按钮的按钮点击,直到 135 秒过去。然后,它应该退出循环。当代码(嵌入在 html 中)被执行时,它只会打印 "test1",而无法离开循环并打印 test2.

        allyTrack = 0;
        scaleTrack = 0;
        enemyTrack = 0;

        allyString = ""
        scaleString = ""
        enemyString = ""

        allyClicked = false;
        scaleClicked = false;
        enemyClicked = false;

        function allyAdd(){
            allyClicked = true;
        }

        function scaleAdd(){
            scaleClicked = true;
        }

        function enemyAdd(){
            enemyClicked = true;
        }

        //Making the long vectors
        function startGame(){
            var startTime = new Date().getTime();
            //var currentTime = new Date().getTime();
            while(true){
                document.getElementById('test').innerHTML = 'test1';
                if(allyClicked){
                    allyTrack += 1;
                    allyString.append(allyTrack.toString())
                    allyClicked = false;
                }
                else if(scaleClicked){
                    scaleTrack += 1;
                    scaleString.append(scaleTrack.toString())
                    scaleClicked = false;
                }
                else if(enemyClicked){
                    enemyTrack += 1;
                    enemyString.append(enemyTrack.toString())
                    enemyClicked = false;
                }
                else{
                    allyString.append(allyTrack.toString())
                    scaleString.append(scaleTrack.toString())
                    enemyString.append(enemyTrack.toString())               
                }
                currentTime = new Date().getTime();

                if(currentTime-startTime > 2000){
                    break;
                }
            }
            document.getElementById('test').innerHTML = 'test2';
            document.getElementById('list').innerHTML = allyString + '\n' + scaleString + '\n' + enemyString;
        }

您可以使用全局 setTimeout 方法:

function loop(callback, interval) {
  return setTimeout(function() {
    callback();
  }, +interval);
}

loop(function() {
  console.log("Looping...");
}, 1000);

String.append() 不属于 JavaScript。我将其替换为 concat(),现在可以使用了。