使用 javascript 如何在设定时间后打破 while 循环?

Using javascript how to break the while loop after a set time?

我有一个 while 循环,如下所示:

while(s1 != "#EANF#")
{
iimPlay("CODE:REFRESH");
iimPlay("CODE:TAG POS=1 TYPE=* ATTR=TXT:Contacted:* EXTRACT=TXT")
var s1 = iimGetLastExtract();
}

它将刷新网页,直到找到它想要的内容。然而,有时它会变成一个无限循环,我想简单地设置一个计时器,这样它就会打破 while 循环并继续。我试着查看 settimeout 但不知道该怎么做。我希望这个 while 循环在 3 分钟后找不到它想要的内容时放弃刷新网页。

编辑:这可能不是正确答案...请参阅评论


您可以在 while 循环条件中使用 3 分钟后翻转的标志:

var keepGoing = true;
setTimeout(function() {
    // this will be executed in 3 minutes
    // causing the following while loop to exit
    keepGoing = false;
}, 180000); // 3 minutes in milliseconds

while(s1 != "#EANF#" && keepGoing === true)
{
iimPlay("CODE:REFRESH");
iimPlay("CODE:TAG POS=1 TYPE=* ATTR=TXT:Contacted:* EXTRACT=TXT")
var s1 = iimGetLastExtract();
}

关于你的问题,你可以定义一个标志变量并在 while 循环中检查它并在计时器中更改它的值。

赞:

你的 while 循环:

while(mflag==0){
    //codes
}

你的定时器功能

Function mtimer(){
    mflag=1;
}

在 while 循环之前的某处:

var mflag=0;
var mt= setTimeout(mtimer,3*60*1000);

但我想说的是,我认为你在while循环中刷新网页的方法是错误的。也许你应该使用 Ajax 或其他东西。如果您提供有关您将要做的整个事情的更多信息,我可能会提供帮助。